Preparation

Clean the environment.

Set locations, and the working directory.

A package-installation function.

Load those packages.

install.packages.auto("readr")
install.packages.auto("optparse")
install.packages.auto("tools")
install.packages.auto("dplyr")
install.packages.auto("tidyr")
install.packages.auto("naniar")

# To get 'data.table' with 'fwrite' to be able to directly write gzipped-files
# Ref: https://stackoverflow.com/questions/42788401/is-possible-to-use-fwrite-from-data-table-with-gzfile
# install.packages("data.table", repos = "https://Rdatatable.gitlab.io/data.table")
library(data.table)

install.packages.auto("tidyverse")
install.packages.auto("knitr")
install.packages.auto("DT")
install.packages.auto("MASS")
# install.packages.auto("Seurat") # latest version

# Install the devtools package from Hadley Wickham
install.packages.auto('devtools')

install.packages.auto("haven")
install.packages.auto("sjlabelled")
install.packages.auto("sjPlot")
install.packages.auto("labelled")
install.packages.auto("tableone")

install.packages.auto("ggpubr")

We will create a datestamp and define the Utrecht Science Park Colour Scheme.

Background

This notebook contains additional figures of the project “Monocyte-chemoattractant protein-1 Levels in Human Atherosclerosis Associate with Plaque Vulnerability.”.

Loading data

load(paste0(PROJECT_loc, "/",Today,".",PROJECTNAME,".main_analyses.RData"))

Additional figures

Age and sex

We want to create per-age-group figures.

  • Box and Whisker plot for MCP-1 plaque levels by sex.
  • Box and Whisker plot for MCP-1 plaque levels by (sex and) age group (<55, 55-64, 65-74, 75-84, 85+).

Inverse-rank transformed data


# ?ggpubr::ggboxplot()

# Global test
compare_means(MCP1_pg_ml_2015_rank ~ Gender,  data = AEDB.CEA, method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA, 
                  x = c("Gender"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Gender.pdf"), plot = last_plot())

Raw data

Simalarly but now for the raw data as median ± interquartile range.


# ?ggpubr::ggboxplot()

# Global test
compare_means(MCP1_pg_ml_2015_rank ~ Gender,  data = AEDB.CEA, method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA, 
                  x = c("Gender"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Gender.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

library(dplyr)

AEDB.CEA <- AEDB.CEA %>% mutate(AgeGroup = factor(case_when(Age < 55 ~ "<55",
                                                     Age >= 55  & Age <= 64 ~ "55-64",
                                                     Age >= 65  & Age <= 74 ~ "65-74",
                                                     Age >= 75  & Age <= 84 ~ "75-84",
                                                     Age >= 85 ~ "85+"))) 

AEDB.CEA <- AEDB.CEA %>% mutate(AgeGroupSex = factor(case_when(Age < 55 & Gender == "male" ~ "<55 males" ,
                                                        Age >= 55  & Age <= 64 & Gender == "male"~ "55-64 males",
                                                        Age >= 65  & Age <= 74 & Gender == "male"~ "65-74 males",
                                                        Age >= 75  & Age <= 84 & Gender == "male"~ "75-84 males",
                                                        Age >= 85 & Gender == "male"~ "85+ males",
                                                        Age < 55 & Gender == "female" ~ "<55 females" ,
                                                        Age >= 55  & Age <= 64 & Gender == "female"~ "55-64 females ",
                                                        Age >= 65  & Age <= 74 & Gender == "female"~ "65-74 females",
                                                        Age >= 75  & Age <= 84 & Gender == "female"~ "75-84 females",
                                                        Age >= 85 & Gender == "female"~ "85+ females")))

table(AEDB.CEA$AgeGroup, AEDB.CEA$Gender)
       
        female male
  <55       45   98
  55-64    194  410
  65-74    264  687
  75-84    202  439
  85+       34   50
table(AEDB.CEA$AgeGroupSex)

   <55 females      <55 males 55-64 females     55-64 males  65-74 females    65-74 males  75-84 females    75-84 males    85+ females 
            45             98            194            410            264            687            202            439             34 
     85+ males 
            50 

Now we can draw some graphs of plaque MCP1 levels per sex and age group.

Inverse-rank transformed data


# ?ggpubr::ggboxplot()

# Global test
compare_means(MCP1_pg_ml_2015_rank ~ AgeGroup,  data = AEDB.CEA, method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA, 
                  x = c("AgeGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Age groups (years)",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "AgeGroup",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(aes(group = AgeGroup), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.AgeGroup.pdf"), plot = last_plot())

compare_means(MCP1_pg_ml_2015_rank ~ AgeGroup, group.by = "Gender", data = AEDB.CEA, method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA, 
                  x = c("AgeGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Age groups (years) per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter",
                  ggthemne = theme_minimal()) +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.AgeGroup_perGender.pdf"), plot = last_plot())

Raw data

Simalarly but now for the raw data as median ± interquartile range.


# ?ggpubr::ggboxplot()

# Global test
compare_means(MCP1_pg_ml_2015_rank ~ AgeGroup,  data = AEDB.CEA, method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA, 
                  x = c("AgeGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Age groups (years)",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "AgeGroup",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(aes(group = AgeGroup), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.AgeGroup.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ AgeGroup, group.by = "Gender", data = AEDB.CEA, method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA, 
                  x = c("AgeGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Age groups (years) per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter",
                  ggthemne = theme_minimal()) +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.AgeGroup_perGender.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

Hypertension & blood pressure

We want to create figures of MCP1 levels stratified by hypertension/blood pressure, and use of anti-hypertensive drugs.

  • Box and Whisker plot for MCP-1 plaque levels by hypertension group (no, yes)
  • Box and Whisker plot for MCP-1 plaque levels by systolic blood pressure group (<120, 120-139, 140-159,160+)
library(dplyr)

AEDB.CEA <- AEDB.CEA %>% mutate(SBPGroup = factor(case_when(systolic < 120 ~ "<120",
                                                     systolic >= 120  & systolic <= 139 ~ "120-139",
                                                     systolic >= 140  & systolic <= 159 ~ "140-159",
                                                     systolic >= 160 ~ "160+"))) 

table(AEDB.CEA$SBPGroup, AEDB.CEA$Gender)
         
          female male
  <120        54  114
  120-139    145  326
  140-159    197  497
  160+       269  548

Now we can draw some graphs of plaque MCP1 levels per sex and hypertension/blood pressure group.

Inverse-rank transformed data

compare_means(MCP1_pg_ml_2015_rank ~ SBPGroup, data = AEDB.CEA %>% filter(!is.na(SBPGroup)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(SBPGroup)), 
                  x = c("SBPGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Systolic blood pressure (mmHg)",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "SBPGroup",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(aes(group = SBPGroup), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.SBPGroup.pdf"), plot = last_plot())

compare_means(MCP1_pg_ml_2015_rank ~ Hypertension.selfreport, data = AEDB.CEA %>% filter(!is.na(Hypertension.selfreport)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(Hypertension.selfreport)), 
                  x = c("Hypertension.selfreport"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Self-reported hypertension",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Hypertension.selfreport",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(aes(group = Hypertension.selfreport), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Hypertension.pdf"), plot = last_plot())

compare_means(MCP1_pg_ml_2015_rank ~ Hypertension.drugs, data = AEDB.CEA %>% filter(!is.na(Hypertension.drugs)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(Hypertension.drugs)), 
                  x = c("Hypertension.drugs"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Hypertension medication use",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Hypertension.drugs",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(aes(group = Hypertension.drugs), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.HypertensionDrugs.pdf"), plot = last_plot())



compare_means(MCP1_pg_ml_2015_rank ~ SBPGroup, group.by = "Gender", data = AEDB.CEA %>% filter(!is.na(SBPGroup)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(SBPGroup)), 
                  x = c("SBPGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Systolic blood pressure (mmHg) per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.SBPGroup_byGender.pdf"), plot = last_plot())

compare_means(MCP1_pg_ml_2015_rank ~ Hypertension.selfreport, group.by = "Gender", data = AEDB.CEA %>% filter(!is.na(Hypertension.selfreport)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(Hypertension.selfreport)), 
                  x = c("Hypertension.selfreport"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Self-reported hypertension per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Hypertension_byGender.pdf"), plot = last_plot())

compare_means(MCP1_pg_ml_2015_rank ~ Hypertension.drugs, group.by = "Gender", data = AEDB.CEA %>% filter(!is.na(Hypertension.drugs)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(Hypertension.drugs)), 
                  x = c("Hypertension.drugs"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Hypertension medication use per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Hypertension.drugs_byGender.pdf"), plot = last_plot())



compare_means(MCP1_pg_ml_2015_rank ~ SBPGroup, group.by = "Hypertension.drugs", data = AEDB.CEA %>% filter(!is.na(SBPGroup) & !is.na(Hypertension.drugs)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(SBPGroup) & !is.na(Hypertension.drugs)), 
                  x = c("SBPGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Systolic blood pressure (mmHg) by medication use",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Hypertension.drugs",
                  palette = c("#49A01D", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Hypertension.drugs), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.SBPGroup_byHypertensionDrugs.pdf"), plot = last_plot())

compare_means(MCP1_pg_ml_2015_rank ~ Hypertension.selfreport, group.by = "Hypertension.drugs", data = AEDB.CEA %>% filter(!is.na(Hypertension.selfreport) & !is.na(Hypertension.drugs)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(Hypertension.selfreport) & !is.na(Hypertension.drugs)), 
                  x = c("Hypertension.selfreport"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Self-reported hypertension by medication use",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Hypertension.drugs",
                  palette = c("#49A01D", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Hypertension.drugs), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Hypertension.selfreport_byHypertensionDrugs.pdf"), plot = last_plot())

Raw data

Simalarly but now for the raw data as median ± interquartile range.

compare_means(MCP1_pg_ml_2015_rank ~ SBPGroup, data = AEDB.CEA %>% filter(!is.na(SBPGroup)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(SBPGroup)), 
                  x = c("SBPGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Systolic blood pressure (mmHg)",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "SBPGroup",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(aes(group = SBPGroup), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.SBPGroup.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ Hypertension.selfreport, data = AEDB.CEA %>% filter(!is.na(Hypertension.selfreport)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(Hypertension.selfreport)), 
                  x = c("Hypertension.selfreport"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Self-reported hypertension",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Hypertension.selfreport",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(aes(group = Hypertension.selfreport), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Hypertension.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ Hypertension.drugs, data = AEDB.CEA %>% filter(!is.na(Hypertension.drugs)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(Hypertension.drugs)), 
                  x = c("Hypertension.drugs"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Hypertension medication use",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Hypertension.drugs",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(aes(group = Hypertension.drugs), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.HypertensionDrugs.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ SBPGroup, group.by = "Gender", data = AEDB.CEA %>% filter(!is.na(SBPGroup)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(SBPGroup)), 
                  x = c("SBPGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Systolic blood pressure (mmHg) per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.SBPGroup_byGender.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ Hypertension.selfreport, group.by = "Gender", data = AEDB.CEA %>% filter(!is.na(Hypertension.selfreport)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(Hypertension.selfreport)), 
                  x = c("Hypertension.selfreport"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Self-reported hypertension per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Hypertension_byGender.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ Hypertension.drugs, group.by = "Gender", data = AEDB.CEA %>% filter(!is.na(Hypertension.drugs)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(Hypertension.drugs)), 
                  x = c("Hypertension.drugs"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Hypertension medication use per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Hypertension.drugs_byGender.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ SBPGroup, group.by = "Hypertension.drugs", data = AEDB.CEA %>% filter(!is.na(SBPGroup) & !is.na(Hypertension.drugs)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(SBPGroup) & !is.na(Hypertension.drugs)), 
                  x = c("SBPGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Systolic blood pressure (mmHg) by medication use",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Hypertension.drugs",
                  palette = c("#49A01D", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Hypertension.drugs), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.SBPGroup_byHypertensionDrugs.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ Hypertension.selfreport, group.by = "Hypertension.drugs", data = AEDB.CEA %>% filter(!is.na(Hypertension.selfreport) & !is.na(Hypertension.drugs)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(Hypertension.selfreport) & !is.na(Hypertension.drugs)), 
                  x = c("Hypertension.selfreport"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Self-reported hypertension by medication use",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Hypertension.drugs",
                  palette = c("#49A01D", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Hypertension.drugs), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Hypertension.selfreport_byHypertensionDrugs.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

Hypercholesterolemia & LDL levels

We want to create figures of MCP1 levels stratified by hypercholesterolemia/LDL-levels, and use of lipid-lowering drugs.

  • Box and Whisker plot for MCP-1 plaque levels by hypercholesterolemia (risk614) group (no, yes)
  • Box and Whisker plot for MCP-1 plaque levels by lipid-lowering drugs group (no, yes)
  • Box and Whisker plot for MCP-1 plaque levels by LDL-levels (mmol/L) group (<100, 100-129, 130-159, 160-189, 190+)
library(dplyr)

AEDB.CEA <- AEDB.CEA %>% mutate(LDLGroup = factor(case_when(LDL_finalCU < 100 ~ "<100",
                                                     LDL_finalCU >= 100  & LDL_finalCU <= 129 ~ "100-129",
                                                     LDL_finalCU >= 130  & LDL_finalCU <= 159 ~ "130-159",
                                                     LDL_finalCU >= 160  & LDL_finalCU <= 189 ~ "160-189",
                                                     LDL_finalCU >= 190 ~ "190+"))) 


table(AEDB.CEA$LDLGroup, AEDB.CEA$Gender)
         
          female male
  <100       171  441
  100-129     96  250
  130-159     75  129
  160-189     40   50
  190+        25   31
require(sjlabelled)
AEDB.CEA$risk614 <- to_factor(AEDB.CEA$risk614)

# Fix plaquephenotypes
attach(AEDB.CEA)
AEDB.CEA[,"Hypercholesterolemia"] <- NA
AEDB.CEA$Hypercholesterolemia[risk614 == "missing value"] <- NA
AEDB.CEA$Hypercholesterolemia[risk614 == -999] <- NA
AEDB.CEA$Hypercholesterolemia[risk614 == "no"] <- "no"
AEDB.CEA$Hypercholesterolemia[risk614 == "yes"] <- "yes"
detach(AEDB.CEA)

table(AEDB.CEA$risk614, AEDB.CEA$Hypercholesterolemia)
               
                  no  yes
  missing value    0    0
  no             648    0
  yes              0 1563
# AEDB.temp <- subset(AEDB,  select = c("STUDY_NUMBER", "UPID", "Age", "Gender", "Hospital", "Artery_summary", "risk614", "Hypercholesterolemia"))
# require(labelled)
# AEDB.temp$Gender <- to_factor(AEDB.temp$Gender)
# AEDB.temp$Hospital <- to_factor(AEDB.temp$Hospital)
# AEDB.temp$Artery_summary <- to_factor(AEDB.temp$Artery_summary)
# 
# DT::datatable(AEDB.temp[1:10,], caption = "Excerpt of the whole AEDB.", rownames = FALSE)
# 
# rm(AEDB.temp)

Now we can draw some graphs of plaque MCP1 levels per sex and hypercholesterolemia/LDL-levels group, as well as stratified by lipid-lowering drugs users.

Inverse-rank transformed data

compare_means(MCP1_pg_ml_2015_rank ~ LDLGroup, data = AEDB.CEA %>% filter(!is.na(LDLGroup)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(LDLGroup)), 
                  x = c("LDLGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "LDL (mg/dL) per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "LDLGroup",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.LDLGroups.pdf"), plot = last_plot())

compare_means(MCP1_pg_ml_2015_rank ~ LDLGroup, group.by = "Gender", data = AEDB.CEA %>% filter(!is.na(LDLGroup)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(LDLGroup)), 
                  x = c("LDLGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "LDL (mg/dL) per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.LDLGroups_byGender.pdf"), plot = last_plot())



compare_means(MCP1_pg_ml_2015_rank ~ Hypercholesterolemia, data = AEDB.CEA %>% filter(!is.na(Hypercholesterolemia)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(Hypercholesterolemia)), 
                  x = c("Hypercholesterolemia"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Diagnosed hypercholesterolemia",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Hypercholesterolemia",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Hypercholesterolemia.pdf"), plot = last_plot())

compare_means(MCP1_pg_ml_2015_rank ~ Hypercholesterolemia, group.by = "Gender", data = AEDB.CEA %>% filter(!is.na(Hypercholesterolemia)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(Hypercholesterolemia)), 
                  x = c("Hypercholesterolemia"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Diagnosed hypercholesterolemia per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Hypercholesterolemia_byGender.pdf"), plot = last_plot())


compare_means(MCP1_pg_ml_2015_rank ~ Med.Statin.LLD, data = AEDB.CEA %>% filter(!is.na(Med.Statin.LLD)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(Med.Statin.LLD)), 
                  x = c("Med.Statin.LLD"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Lipid-lowering drug use",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Med.Statin.LLD",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Med.Statin.LLD.pdf"), plot = last_plot())

compare_means(MCP1_pg_ml_2015_rank ~ Med.Statin.LLD, group.by = "Gender", data = AEDB.CEA %>% filter(!is.na(Med.Statin.LLD)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(Med.Statin.LLD)), 
                  x = c("Med.Statin.LLD"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Lipid-lowering drug use per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Med.Statin.LLD_byGender.pdf"), plot = last_plot())




compare_means(MCP1_pg_ml_2015_rank ~ LDLGroup, group.by = "Med.Statin.LLD", data = AEDB.CEA %>% filter(!is.na(LDLGroup) & !is.na(Med.Statin.LLD)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(LDLGroup) & !is.na(Med.Statin.LLD)), 
                  x = c("LDLGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "LDL (mg/dL) per LLD use",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Med.Statin.LLD",
                  palette = c("#49A01D", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Med.Statin.LLD), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.LDLGroups_byMed.Statin.LLD.pdf"), plot = last_plot())

compare_means(MCP1_pg_ml_2015_rank ~ Hypercholesterolemia, group.by = "Med.Statin.LLD", data = AEDB.CEA %>% filter(!is.na(Hypercholesterolemia) & !is.na(Med.Statin.LLD)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(Hypercholesterolemia) & !is.na(Med.Statin.LLD)), 
                  x = c("Hypercholesterolemia"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Diagnosed hypercholesterolemia per LLD use",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Med.Statin.LLD",
                  palette = c("#49A01D", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Med.Statin.LLD), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.LDLGroups_byMed.Statin.LLD.pdf"), plot = last_plot())

Raw data

Simalarly but now for the raw data as median ± interquartile range.

compare_means(MCP1_pg_ml_2015_rank ~ LDLGroup, data = AEDB.CEA %>% filter(!is.na(LDLGroup)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(LDLGroup)), 
                  x = c("LDLGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "LDL (mg/dL) per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "LDLGroup",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.LDLGroups.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ LDLGroup, group.by = "Gender", data = AEDB.CEA %>% filter(!is.na(LDLGroup)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(LDLGroup)), 
                  x = c("LDLGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "LDL (mg/dL) per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.LDLGroups_byGender.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ Hypercholesterolemia, data = AEDB.CEA %>% filter(!is.na(Hypercholesterolemia)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(Hypercholesterolemia)), 
                  x = c("Hypercholesterolemia"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Diagnosed hypercholesterolemia",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Hypercholesterolemia",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Hypercholesterolemia.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ Hypercholesterolemia, group.by = "Gender", data = AEDB.CEA %>% filter(!is.na(Hypercholesterolemia)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(Hypercholesterolemia)), 
                  x = c("Hypercholesterolemia"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Diagnosed hypercholesterolemia per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Hypercholesterolemia_byGender.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ Med.Statin.LLD, data = AEDB.CEA %>% filter(!is.na(Med.Statin.LLD)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(Med.Statin.LLD)), 
                  x = c("Med.Statin.LLD"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Lipid-lowering drug use",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Med.Statin.LLD",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Med.Statin.LLD.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ Med.Statin.LLD, group.by = "Gender", data = AEDB.CEA %>% filter(!is.na(Med.Statin.LLD)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(Med.Statin.LLD)), 
                  x = c("Med.Statin.LLD"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Lipid-lowering drug use per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Med.Statin.LLD_byGender.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ LDLGroup, group.by = "Med.Statin.LLD", data = AEDB.CEA %>% filter(!is.na(LDLGroup) & !is.na(Med.Statin.LLD)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(LDLGroup) & !is.na(Med.Statin.LLD)), 
                  x = c("LDLGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "LDL (mg/dL) per LLD use",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Med.Statin.LLD",
                  palette = c("#49A01D", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Med.Statin.LLD), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.LDLGroups_byMed.Statin.LLD.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ Hypercholesterolemia, group.by = "Med.Statin.LLD", data = AEDB.CEA %>% filter(!is.na(Hypercholesterolemia) & !is.na(Med.Statin.LLD)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(Hypercholesterolemia) & !is.na(Med.Statin.LLD)), 
                  x = c("Hypercholesterolemia"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Diagnosed hypercholesterolemia per LLD use",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Med.Statin.LLD",
                  palette = c("#49A01D", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Med.Statin.LLD), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.LDLGroups_byMed.Statin.LLD.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

Kidney function (eGFR)

We want to create figures of MCP1 levels stratified by kidney function.

  • Box and Whisker plot for MCP-1 plaque levels by chronic kidney disease (CKD) group (1, 2, 3, 4, 5)
  • Box and Whisker plot for MCP-1 plaque levels by eGFR (MDRD-based) group (90+, 60-89, 30-59, <30)
library(dplyr)

AEDB.CEA <- AEDB.CEA %>% mutate(eGFRGroup = factor(case_when(GFR_MDRD < 15 ~ "<15",
                                                             GFR_MDRD >= 15  & GFR_MDRD <= 29 ~ "15-29",
                                                             GFR_MDRD >= 30  & GFR_MDRD <= 59 ~ "30-59",
                                                             GFR_MDRD >= 60  & GFR_MDRD <= 89 ~ "60-89",
                                                             GFR_MDRD >= 90 ~ "90+")))

table(AEDB.CEA$eGFRGroup, AEDB.CEA$Gender)
       
        female male
  <15        3    7
  15-29      7   20
  30-59    193  325
  60-89    361  845
  90+      117  345
table(AEDB.CEA$eGFRGroup, AEDB.CEA$KDOQI)
       
        No data available/missing Normal kidney function CKD 2 (Mild) CKD 3 (Moderate) CKD 4 (Severe) CKD 5 (Failure)
  <15                           0                      0            0                0              0              10
  15-29                         0                      0            0                0             27               0
  30-59                         0                      0            0              518              0               0
  60-89                         0                      0         1206                0              0               0
  90+                           0                    462            0                0              0               0

Now we can draw some graphs of plaque MCP1 levels per sex and kidney function group.

Inverse-rank transformed data


# Global test
compare_means(MCP1_pg_ml_2015_rank ~ eGFRGroup, data = AEDB.CEA %>% filter(!is.na(eGFRGroup)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(eGFRGroup)), 
                  x = c("eGFRGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "eGFR (mL/min per 1.73 m2)",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "eGFRGroup",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.EGFR.pdf"), plot = last_plot())

compare_means(MCP1_pg_ml_2015_rank ~ eGFRGroup, group.by = "Gender", data = AEDB.CEA %>% filter(!is.na(eGFRGroup)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(eGFRGroup)), 
                  x = c("eGFRGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "eGFR (mL/min per 1.73 m2) per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.EGFR_byGender.pdf"), plot = last_plot())

compare_means(MCP1_pg_ml_2015_rank ~ KDOQI, data = AEDB.CEA %>% filter(!is.na(KDOQI)), method = "kruskal.test")
p1 <- ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(KDOQI)), 
                  x = c("KDOQI"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Kidney function (KDOQI)",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "KDOQI",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(aes(group = KDOQI), label = "p.format", method = "kruskal.test")
ggpar(p1 + rotate_x_text(45), legend = "right") 
rm(p1)
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.KDOQI.pdf"), plot = last_plot())

compare_means(MCP1_pg_ml_2015_rank ~ KDOQI, group.by = "Gender",  data = AEDB.CEA %>% filter(!is.na(KDOQI)), method = "kruskal.test")
p1 <- ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(KDOQI)), 
                  x = c("KDOQI"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Kidney function (KDOQI) per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggpar(p1 + rotate_x_text(45), legend = "right") 
rm(p1)
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.KDOQI_byGender.pdf"), plot = last_plot())

compare_means(MCP1_pg_ml_2015_rank ~ eGFRGroup, data = AEDB.CEA %>% filter(!is.na(eGFRGroup) & !is.na(KDOQI)), method = "kruskal.test")
p1 <- ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(eGFRGroup) & !is.na(KDOQI)), 
                  x = c("eGFRGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "eGFR (mL/min per 1.73 m2) by KDOQI group",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "KDOQI",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(method = "kruskal.test")
ggpar(p1, legend = "right")
rm(p1)
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.EGFR_KDOQI.pdf"), plot = last_plot())

Raw data

Simalarly but now for the raw data as median ± interquartile range.


# Global test
compare_means(MCP1_pg_ml_2015_rank ~ eGFRGroup, data = AEDB.CEA %>% filter(!is.na(eGFRGroup)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(eGFRGroup)), 
                  x = c("eGFRGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "eGFR (mL/min per 1.73 m2)",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "eGFRGroup",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.EGFR.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ eGFRGroup, group.by = "Gender", data = AEDB.CEA %>% filter(!is.na(eGFRGroup)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(eGFRGroup)), 
                  x = c("eGFRGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "eGFR (mL/min per 1.73 m2) per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.EGFR_byGender.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ KDOQI, data = AEDB.CEA %>% filter(!is.na(KDOQI)), method = "kruskal.test")
p1 <- ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(KDOQI)), 
                  x = c("KDOQI"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Kidney function (KDOQI)",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "KDOQI",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(aes(group = KDOQI), label = "p.format", method = "kruskal.test")
ggpar(p1 + rotate_x_text(45), legend = "right") 
rm(p1)
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.KDOQI.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ KDOQI, group.by = "Gender",  data = AEDB.CEA %>% filter(!is.na(KDOQI)), method = "kruskal.test")
p1 <- ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(KDOQI)), 
                  x = c("KDOQI"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Kidney function (KDOQI) per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggpar(p1 + rotate_x_text(45), legend = "right") 
rm(p1)
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.KDOQI_byGender.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ eGFRGroup, data = AEDB.CEA %>% filter(!is.na(eGFRGroup) & !is.na(KDOQI)), method = "kruskal.test")
p1 <- ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(eGFRGroup) & !is.na(KDOQI)), 
                  x = c("eGFRGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "eGFR (mL/min per 1.73 m2) by KDOQI group",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "KDOQI",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(method = "kruskal.test")
ggpar(p1, legend = "right")
rm(p1)
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.EGFR_KDOQI.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

BMI

We want to create figures of MCP1 levels stratified by BMI.

  • Box and Whisker plot for MCP-1 plaque levels by BMI WHO group (underweight, normal, overweight, obese)
  • Box and Whisker plot for MCP-1 plaque levels by BMI group (<18.5, 18.5-24.9, 25, 29.9, 30-24.9, 35+)
library(dplyr)

AEDB.CEA <- AEDB.CEA %>% mutate(BMIGroup = factor(case_when(BMI < 18.5 ~ "<18.5",
                                                     BMI >= 18.5  & BMI < 25 ~ "18.5-24",
                                                     BMI >= 25  & BMI < 30 ~ "25-29",
                                                     BMI >= 30  & BMI < 35 ~ "30-35",
                                                     BMI >= 35 ~ "35+"))) 

# require(labelled)
# AEDB.CEA$BMI_US <- as_factor(AEDB.CEA$BMI_US)
# AEDB.CEA$BMI_WHO <- as_factor(AEDB.CEA$BMI_WHO)
# table(AEDB.CEA$BMI_WHO, AEDB.CEA$BMI_US)

table(AEDB.CEA$BMIGroup, AEDB.CEA$Gender)
         
          female male
  <18.5       17    8
  18.5-24    277  574
  25-29      267  786
  30-35       99  189
  35+         32   32
table(AEDB.CEA$BMIGroup, AEDB.CEA$BMI_WHO)
         
          No data available/missing Underweight Normal Overweight Obese
  <18.5                           0          24      0          0     0
  18.5-24                         0           0    851          0     0
  25-29                           0           0      0       1052     0
  30-35                           0           0      0          0   288
  35+                             0           0      0          0    64

Now we can draw some graphs of plaque MCP1 levels per sex and age group.

Inverse-rank transformed data

MCP1 plaque levels


# Global test
compare_means(MCP1_pg_ml_2015_rank ~ BMIGroup,  data = AEDB.CEA %>% filter(!is.na(BMIGroup)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(BMIGroup)), 
                  x = c("BMIGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "BMI groups (kg/m2)",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  # color = "Gender",
                  # palette = c("#D5267B", "#1290D9"),
                  color = "BMIGroup",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.BMI.pdf"), plot = last_plot())

compare_means(MCP1_pg_ml_2015_rank ~ BMIGroup, group.by = "Gender", data = AEDB.CEA %>% filter(!is.na(BMIGroup)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(BMIGroup)), 
                  x = c("BMIGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "BMI groups (kg/m2) per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.BMI_byGender.pdf"), plot = last_plot())

compare_means(MCP1_pg_ml_2015_rank ~ BMIGroup, data = AEDB.CEA %>% filter(!is.na(BMIGroup) & !is.na(BMI_WHO)), method = "kruskal.test")
p1 <- ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(BMIGroup) & !is.na(BMI_WHO)), 
                  x = c("BMIGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "BMI groups (kg/m2) per WHO categories",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "BMI_WHO",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(method = "kruskal.test")
ggpar(p1, legend = "right")
rm(p1)
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.BMI_byWHO.pdf"), plot = last_plot())

Raw data

Simalarly but now for the raw data as median ± interquartile range.


# Global test
compare_means(MCP1_pg_ml_2015_rank ~ BMIGroup,  data = AEDB.CEA %>% filter(!is.na(BMIGroup)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(BMIGroup)), 
                  x = c("BMIGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "BMI groups (kg/m2)",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  # color = "Gender",
                  # palette = c("#D5267B", "#1290D9"),
                  color = "BMIGroup",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.BMI.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ BMIGroup, group.by = "Gender", data = AEDB.CEA %>% filter(!is.na(BMIGroup)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(BMIGroup)), 
                  x = c("BMIGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "BMI groups (kg/m2) per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.BMI_byGender.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ BMIGroup, data = AEDB.CEA %>% filter(!is.na(BMIGroup) & !is.na(BMI_WHO)), method = "kruskal.test")
p1 <- ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(BMIGroup) & !is.na(BMI_WHO)), 
                  x = c("BMIGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "BMI groups (kg/m2) per WHO categories",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "BMI_WHO",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(method = "kruskal.test")
ggpar(p1, legend = "right")
rm(p1)
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.BMI_byWHO.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

Diabetes

We want to create figures of MCP1 levels stratified by type 2 diabetes.

  • Box and Whisker plot for MCP-1 plaque levels by type 2 diabetes group (no, yes)

Now we can draw some graphs of plaque MCP1 levels per sex and age group.

Inverse-rank transformed data


# Global test
compare_means(MCP1_pg_ml_2015_rank ~ DiabetesStatus,  data = AEDB.CEA %>% filter(!is.na(DiabetesStatus)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(DiabetesStatus)), 
                  x = c("DiabetesStatus"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Diabetes status",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  # color = "Gender",
                  # palette = c("#D5267B", "#1290D9"),
                  color = "DiabetesStatus",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Diabetes.pdf"), plot = last_plot())

compare_means(MCP1_pg_ml_2015_rank ~ DiabetesStatus, group.by = "Gender", data = AEDB.CEA %>% filter(!is.na(DiabetesStatus)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(DiabetesStatus)), 
                  x = c("DiabetesStatus"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Diabetes status per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Diabetes_byGender.pdf"), plot = last_plot())

Raw data

Simalarly but now for the raw data as median ± interquartile range.


# Global test
compare_means(MCP1_pg_ml_2015_rank ~ DiabetesStatus,  data = AEDB.CEA %>% filter(!is.na(DiabetesStatus)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(DiabetesStatus)), 
                  x = c("DiabetesStatus"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Diabetes status",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  # color = "Gender",
                  # palette = c("#D5267B", "#1290D9"),
                  color = "DiabetesStatus",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Diabetes.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ DiabetesStatus, group.by = "Gender", data = AEDB.CEA %>% filter(!is.na(DiabetesStatus)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(DiabetesStatus)), 
                  x = c("DiabetesStatus"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Diabetes status per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Diabetes_byGender.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

Smoking

We want to create figures of MCP1 levels stratified by smoking.

  • Box and Whisker plot for MCP-1 plaque levels by smoking group (never, ex, current)

Now we can draw some graphs of plaque MCP1 levels per sex and age group.

Inverse-rank transformed data


# Global test
compare_means(MCP1_pg_ml_2015_rank ~ SmokerStatus,  data = AEDB.CEA %>% filter(!is.na(SmokerStatus)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(SmokerStatus)), 
                  x = c("SmokerStatus"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Smoker status",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  # color = "Gender",
                  # palette = c("#D5267B", "#1290D9"),
                  color = "SmokerStatus",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Smoking.pdf"), plot = last_plot())

compare_means(MCP1_pg_ml_2015_rank ~ SmokerStatus, group.by = "Gender", data = AEDB.CEA %>% filter(!is.na(SmokerStatus)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(SmokerStatus)), 
                  x = c("SmokerStatus"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Smoker status per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Smoking_byGender.pdf"), plot = last_plot())

Raw data

Simalarly but now for the raw data as median ± interquartile range.


# Global test
compare_means(MCP1_pg_ml_2015_rank ~ SmokerStatus,  data = AEDB.CEA %>% filter(!is.na(SmokerStatus)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(SmokerStatus)), 
                  x = c("SmokerStatus"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Smoker status",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  # color = "Gender",
                  # palette = c("#D5267B", "#1290D9"),
                  color = "SmokerStatus",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Smoking.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ SmokerStatus, group.by = "Gender", data = AEDB.CEA %>% filter(!is.na(SmokerStatus)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(SmokerStatus)), 
                  x = c("SmokerStatus"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Smoker status per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Smoking_byGender.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

Stenosis

We want to create figures of MCP1 levels stratified by stenosis grade.

  • Box and Whisker plot for MCP-1 plaque levels by stenosis grade group (<70, 70-89, 90+)
library(dplyr)

AEDB.CEA <- AEDB.CEA %>% mutate(StenoticGroup = factor(case_when(stenose == "0-49%" ~ "<70",
                                                     stenose == "0-49%" ~ "<70",
                                                     stenose == "50-70%" ~ "<70",
                                                     stenose == "70-90%" ~ "70-89",
                                                     stenose == "50-99%" ~ "90+",
                                                     stenose == "70-99%" ~ "90+",
                                                     stenose == "100% (Occlusion)" ~ "90+",
                                                     stenose == "90-99%" ~ "90+")))

table(AEDB.CEA$StenoticGroup, AEDB.CEA$Gender)
       
        female male
  <70       46  157
  70-89    365  762
  90+      316  726
table(AEDB.CEA$stenose, AEDB.CEA$StenoticGroup)
                  
                    <70 70-89  90+
  missing             0     0    0
  0-49%              13     0    0
  50-70%            190     0    0
  70-90%              0  1127    0
  90-99%              0     0  928
  100% (Occlusion)    0     0   31
  NA                  0     0    0
  50-99%              0     0   15
  70-99%              0     0   68
  99                  0     0    0

Now we can draw some graphs of plaque MCP1 levels per sex and age group.

Inverse-rank transformed data


# Global test
compare_means(MCP1_pg_ml_2015_rank ~ StenoticGroup,  data = AEDB.CEA %>% filter(!is.na(StenoticGroup)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(StenoticGroup)), 
                  x = c("StenoticGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Stenotic grade",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  # color = "Gender",
                  # palette = c("#D5267B", "#1290D9"),
                  color = "StenoticGroup",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Stenosis.pdf"), plot = last_plot())

compare_means(MCP1_pg_ml_2015_rank ~ StenoticGroup, group.by ="Gender", data = AEDB.CEA %>% filter(!is.na(StenoticGroup)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(StenoticGroup)), 
                  x = c("StenoticGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Stenotic grade per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Stenosis_byGender.pdf"), plot = last_plot())

Raw data

Simalarly but now for the raw data as median ± interquartile range.


# Global test
compare_means(MCP1_pg_ml_2015_rank ~ StenoticGroup,  data = AEDB.CEA %>% filter(!is.na(StenoticGroup)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(StenoticGroup)), 
                  x = c("StenoticGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Stenotic grade",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  # color = "Gender",
                  # palette = c("#D5267B", "#1290D9"),
                  color = "StenoticGroup",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Stenosis.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ StenoticGroup, group.by ="Gender", data = AEDB.CEA %>% filter(!is.na(StenoticGroup)), method = "kruskal.test")
ggpubr::ggboxplot(AEDB.CEA %>% filter(!is.na(StenoticGroup)), 
                  x = c("StenoticGroup"),
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Stenotic grade per gender",
                  ylab = "MCP1 plaque [pg/mL]\n(inverse-rank transformation)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format", method = "kruskal.test")
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.Stenosis_byGender.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

Plaque vs. plaque MCP1 levels

We will also make a nice correlation plot between the two experiments of plaque MCP1 levels.

AEDB.CEA$MCP1_rank <- qnorm((rank(AEDB.CEA$MCP1, na.last = "keep") - 0.5) / sum(!is.na(AEDB.CEA$MCP1)))
summary(AEDB.CEA$MCP1)
summary(AEDB.CEA$MCP1_pg_ug_2015)

ggpubr::ggscatter(AEDB.CEA, 
                  x = "MCP1", 
                  y = "MCP1_pg_ml_2015",
                  xlab = "MCP1 plaque [pg/mL] (exp. no. 1)",
                  ylab = "MCP1 plaque [pg/mL] (exp. no. 2)",
                  add = "reg.line", add.params = list(color = "#1290D9"),
                  conf.int = TRUE,
                  cor.coef = TRUE, cor.coeff.args = list(method = "spearman"))
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque_vs_plaque.raw.pdf"), plot = last_plot())

ggpubr::ggscatter(AEDB.CEA, 
                  x = "MCP1_rank", 
                  y = "MCP1_pg_ml_2015_rank",
                  xlab = "MCP1 plaque [pg/mL] (exp. no. 1)",
                  ylab = "MCP1 plaque [pg/mL] (exp. no. 2)",
                  add = "reg.line", add.params = list(color = "#1290D9"),
                  conf.int = TRUE,
                  cor.coef = TRUE, cor.coeff.args = list(method = "spearman"))
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque_vs_plaque.rank.pdf"), plot = last_plot())

Symptoms

We want to create per-symptom figures.

library(dplyr)

table(AEDB.CEA$AgeGroup, AEDB.CEA$AsymptSympt2G)
       
        Asymptomatic Symptomatic
  <55             24         119
  55-64           76         528
  65-74          124         827
  75-84           43         598
  85+              3          81
table(AEDB.CEA$Gender, AEDB.CEA$AsymptSympt2G)
        
         Asymptomatic Symptomatic
  female           64         675
  male            206        1478
table(AEDB.CEA$AsymptSympt2G)

Asymptomatic  Symptomatic 
         270         2153 

Inverse-rank transformed data

Now we can draw some graphs of plaque MCP1 levels per symptom group.


# ?ggpubr::ggboxplot()
my_comparisons <- list(c("Asymptomatic", "Symptomatic"))

p1 <- ggpubr::ggdotplot(AEDB.CEA, 
                  x = "AsymptSympt2G", y = "MCP1_pg_ml_2015_rank",
                  title = "MCP1 plaque [pg/mL] levels per symptom", 
                  xlab = "Symptoms",
                  ylab = "MCP1 plaque [pg/mL]\n inverse-rank transformation",
                  color = "AsymptSympt2G", fill = "AsymptSympt2G",
                  # palette = c(uithof_color[16], uithof_color[23]),
                  palette = "npg",
                  size = 0.25,
                  add = "boxplot", # Add dotplot
                  add.params = list(binwidth = 0.1, dotsize = 0.3)
          ) +
  stat_compare_means(comparisons = my_comparisons, method = "wilcox.test")
ggpar(p1, legend = c("right"), legend.title = "Symptoms")

ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.AsymptSympt2G.pdf"), plot = last_plot())

rm(p1)

compare_means(MCP1_pg_ml_2015_rank ~ AsymptSympt2G, group.by = "Gender", data = AEDB.CEA, method = "kruskal.test")
p1 <- ggpubr::ggdotplot(AEDB.CEA, 
                  x = "AsymptSympt2G", y = "MCP1_pg_ml_2015_rank",
                  title = "MCP1 plaque [pg/mL] levels per symptom by gender", 
                  xlab = "Symptoms",
                  ylab = "MCP1 plaque [pg/mL]\n inverse-rank transformation",
                  color = "Gender", fill = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  size = 0.15,
                  add = "boxplot", # Add dotplot
                  add.params = list(binwidth = 0.1, dotsize = 0.3)
          ) +
  stat_compare_means(aes(group = Gender), label = "p.format",  method = "wilcox.test")
ggpar(p1, legend = c("right"), legend.title = "Symptoms")

ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.AsymptSympt2G.byGender.pdf"), plot = last_plot())

rm(p1)

# regular boxplots
p1 <- ggpubr::ggboxplot(AEDB.CEA, 
                  x = "AsymptSympt2G", y = "MCP1_pg_ml_2015_rank",
                  title = "MCP1 plaque [pg/mL] levels per symptom", 
                  xlab = "Symptoms",
                  ylab = "MCP1 plaque [pg/mL]\n inverse-rank transformation",
                  color = "AsymptSympt2G", 
                  # palette = c(uithof_color[16], uithof_color[23]),
                  palette = "npg",
                  add = "jitter", 
                  add.params = list(binwidth = 0.1, dotsize = 0.3)
          ) +
  stat_compare_means(comparisons = my_comparisons, method = "wilcox.test")
ggpar(p1, legend = c("right"), legend.title = "Symptoms")

ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.AsymptSympt2G.regBoxPlot.pdf"), plot = last_plot())

rm(p1)

compare_means(MCP1_pg_ml_2015_rank ~ AsymptSympt2G, group.by = "Gender", data = AEDB.CEA, method = "kruskal.test")
p1 <- ggpubr::ggboxplot(AEDB.CEA, 
                  x = "AsymptSympt2G", y = "MCP1_pg_ml_2015_rank",
                  title = "MCP1 plaque [pg/mL] levels per symptom by gender", 
                  xlab = "Symptoms",
                  ylab = "MCP1 plaque [pg/mL]\n inverse-rank transformation",
                  color = "Gender", 
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter", 
                  add.params = list(binwidth = 0.1, dotsize = 0.3)
          ) +
  stat_compare_means(aes(group = Gender), label = "p.format",  method = "wilcox.test")
ggpar(p1, legend = c("right"), legend.title = "Symptoms")

ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.AsymptSympt2G.byGender.regBoxPlot.pdf"), plot = last_plot())

rm(p1)

Raw data

Simalarly but now for the raw data as median ± interquartile range.


# ?ggpubr::ggboxplot()
my_comparisons <- list(c("Asymptomatic", "Symptomatic"))

p1 <- ggpubr::ggdotplot(AEDB.CEA, 
                  x = "AsymptSympt2G", y = "MCP1_pg_ml_2015_rank",
                  title = "MCP1 plaque [pg/mL] levels per symptom", 
                  xlab = "Symptoms",
                  ylab = "MCP1 plaque [pg/mL]\n inverse-rank transformation",
                  color = "AsymptSympt2G", fill = "AsymptSympt2G",
                  # palette = c(uithof_color[16], uithof_color[23]),
                  palette = "npg",
                  size = 0.25,
                  add = "boxplot", # Add dotplot
                  add.params = list(binwidth = 0.1, dotsize = 0.3)
          ) +
  stat_compare_means(comparisons = my_comparisons, method = "wilcox.test")
ggpar(p1, legend = c("right"), legend.title = "Symptoms")

ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.AsymptSympt2G.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

rm(p1)

compare_means(MCP1_pg_ml_2015_rank ~ AsymptSympt2G, group.by = "Gender", data = AEDB.CEA, method = "kruskal.test")
p1 <- ggpubr::ggdotplot(AEDB.CEA, 
                  x = "AsymptSympt2G", y = "MCP1_pg_ml_2015_rank",
                  title = "MCP1 plaque [pg/mL] levels per symptom by gender", 
                  xlab = "Symptoms",
                  ylab = "MCP1 plaque [pg/mL]\n inverse-rank transformation",
                  color = "Gender", fill = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  size = 0.15,
                  add = "boxplot", # Add dotplot
                  add.params = list(binwidth = 0.1, dotsize = 0.3)
          ) +
  stat_compare_means(aes(group = Gender), label = "p.format",  method = "wilcox.test")
ggpar(p1, legend = c("right"), legend.title = "Symptoms")

ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.AsymptSympt2G.byGender.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

rm(p1)

# regular boxplots
p1 <- ggpubr::ggboxplot(AEDB.CEA, 
                  x = "AsymptSympt2G", y = "MCP1_pg_ml_2015_rank",
                  title = "MCP1 plaque [pg/mL] levels per symptom", 
                  xlab = "Symptoms",
                  ylab = "MCP1 plaque [pg/mL]\n inverse-rank transformation",
                  color = "AsymptSympt2G", 
                  # palette = c(uithof_color[16], uithof_color[23]),
                  palette = "npg",
                  add = "jitter", 
                  add.params = list(binwidth = 0.1, dotsize = 0.3)
          ) +
  stat_compare_means(comparisons = my_comparisons, method = "wilcox.test")
ggpar(p1, legend = c("right"), legend.title = "Symptoms")

ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.AsymptSympt2G.regBoxPlot.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

rm(p1)

compare_means(MCP1_pg_ml_2015_rank ~ AsymptSympt2G, group.by = "Gender", data = AEDB.CEA, method = "kruskal.test")
p1 <- ggpubr::ggboxplot(AEDB.CEA, 
                  x = "AsymptSympt2G", y = "MCP1_pg_ml_2015_rank",
                  title = "MCP1 plaque [pg/mL] levels per symptom by gender", 
                  xlab = "Symptoms",
                  ylab = "MCP1 plaque [pg/mL]\n inverse-rank transformation",
                  color = "Gender", 
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter", 
                  add.params = list(binwidth = 0.1, dotsize = 0.3)
          ) +
  stat_compare_means(aes(group = Gender), label = "p.format",  method = "wilcox.test")
ggpar(p1, legend = c("right"), legend.title = "Symptoms")

ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.AsymptSympt2G.byGender.regBoxPlot.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

rm(p1)

Forest plots

We would also like to visualize the multivariable analyses results.

library(ggplot2)
library(openxlsx)
model1_mcp1 <- read.xlsx(paste0(OUT_loc, "/", Today, ".AEDB.CEA.Bin.Uni.Protein.RANK.Symptoms.MODEL1.xlsx"))
model2_mcp1 <- read.xlsx(paste0(OUT_loc, "/", Today, ".AEDB.CEA.Bin.Multi.Protein.RANK.Symptoms.MODEL2.xlsx"))
model1_mcp1$model <- "univariate"
model2_mcp1$model <- "multivariate"

models_mcp1 <- rbind(model1_mcp1, model2_mcp1)
models_mcp1
NA

Forest plot for experiment 2.

dat <- data.frame(group = factor(c("Age, sex-adjusted", "Age, sex, and adjusted for risk factors"), 
                           
                           levels=c("Age, sex, and adjusted for risk factors", "Age, sex-adjusted")),
                  cen = c(models_mcp1$OR[models_mcp1$Predictor=="MCP1_pg_ml_2015_rank"]),
                  low = c(models_mcp1$low95CI[models_mcp1$Predictor=="MCP1_pg_ml_2015_rank"]),
                  high = c(models_mcp1$up95CI[models_mcp1$Predictor=="MCP1_pg_ml_2015_rank"]))

fp <- ggplot(data = dat, aes(x = group, y = cen, ymin = low, ymax = high)) +
  geom_pointrange(linetype = 2, size = 1, colour = c("#1290D9", "#49A01D")) + 
  geom_hline(yintercept = 1, lty = 2) +  # add a dotted line at x=1 after flip
  coord_flip(ylim = c(0.8, 1.7)) +  # flip coordinates (puts labels on y axis)
  xlab("Model") + ylab("OR (95% CI) for symptomatic plaques") +
  ggtitle("Plaque MCP-1 levels (1 SD increment, exp. #2, n = 1190+)") +
  theme_minimal()  # use a white background
print(fp)

ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.exp2.forest.pdf"), plot = fp)

rm(fp)

Forest plot for experiment 1.

dat <- data.frame(group = factor(c("Age, sex-adjusted", "Age, sex, and adjusted for risk factors"), 
                           
                           levels=c("Age, sex, and adjusted for risk factors", "Age, sex-adjusted")),
                  cen = c(models_mcp1$OR[models_mcp1$Predictor=="MCP1_rank"]),
                  low = c(models_mcp1$low95CI[models_mcp1$Predictor=="MCP1_rank"]),
                  high = c(models_mcp1$up95CI[models_mcp1$Predictor=="MCP1_rank"]))

fp <- ggplot(data = dat, aes(x = group, y = cen, ymin = low, ymax = high)) +
  geom_pointrange(linetype = 2, size = 1, colour = c("#1290D9", "#49A01D")) + 
  geom_hline(yintercept = 1, lty = 2) +  # add a dotted line at x=1 after flip
  coord_flip(ylim = c(0.8, 1.7)) +  # flip coordinates (puts labels on y axis)
  xlab("Model") + ylab("OR (95% CI) for symptomatic plaques") +
  ggtitle("Plaque MCP-1 levels (1 SD increment, exp. #1, n = 490+)") +
  theme_minimal()  # use a white background
print(fp)

ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.exp1.forest.pdf"), plot = fp)

rm(fp)

MCP1 vs. cytokines plaque levels correlations

We will plot the correlations of other cytokine plaque levels to the MCP1 plaque levels. These include:

  • IL2
  • IL4
  • IL5
  • IL6
  • IL8
  • IL9
  • IL10
  • IL12
  • IL13
  • IL21
  • INFG
  • TNFA
  • MIF
  • MCP1
  • MIP1a
  • RANTES
  • MIG
  • IP10
  • Eotaxin1
  • TARC
  • PARC
  • MDC
  • OPG
  • sICAM1
  • VEGFA
  • TGFB

In addition we will look at three metalloproteinases which were measured using an activity assay.

  • MMP2
  • MMP8
  • MMP9

The proteins were measured using FACS and LUMINEX. Given the different platforms used (FACS vs. LUMINEX), we will inverse rank-normalize these variables as well to scale them to the same scale as the MCP1 plaque levels.

We will set the measurements that yielded ‘0’ to NA, as it is unlikely that any protein ever has exactly 0 copies. The ‘0’ yielded during the experiment are due to the limits of the detection.

Prepare data

cytokines <- c("IL2", "IL4", "IL5", "IL6", "IL8", "IL9", "IL10", "IL12", "IL13", "IL21", 
               "INFG", "TNFA", "MIF", "MCP1", "MIP1a", "RANTES", "MIG", "IP10", "Eotaxin1", 
               "TARC", "PARC", "MDC", "OPG", "sICAM1", "VEGFA", "TGFB")
metalloproteinases <- c("MMP2", "MMP8", "MMP9")

# fix names
names(AEDB.CEA)[names(AEDB.CEA) == "VEFGA"] <- "VEGFA"


proteins_of_interest <- c(cytokines, metalloproteinases)

proteins_of_interest_rank = unlist(lapply(proteins_of_interest, paste0, "_rank"))


# make variables numerics()
AEDB.CEA <- AEDB.CEA %>%
  mutate_each(funs(as.numeric), proteins_of_interest)
  
for(PROTEIN in 1:length(proteins_of_interest)){

  # UCORBIOGSAqc$Z <- NULL
  var.temp.rank = proteins_of_interest_rank[PROTEIN]
  var.temp = proteins_of_interest[PROTEIN]
  
  cat(paste0("\nSelecting ", var.temp, " and standardising: ", var.temp.rank,".\n"))
  cat(paste0("* changing ", var.temp, " to numeric.\n"))

  # AEDB.CEA <-  AEDB.CEA %>% mutate(AEDB.CEA[,var.temp] == replace(AEDB.CEA[,var.temp], AEDB.CEA[,var.temp]==0, NA))

  AEDB.CEA[,var.temp][AEDB.CEA[,var.temp]==0.000000]=NA

  cat(paste0("* standardising ", var.temp, 
             " (mean: ",round(mean(!is.na(AEDB.CEA[,var.temp])), digits = 6),
             ", n = ",sum(!is.na(AEDB.CEA[,var.temp])),").\n"))
  
  AEDB.CEA <- AEDB.CEA %>%
      mutate_at(vars(var.temp), 
        # list(Z = ~ (AEDB.CEA[,var.temp] - mean(AEDB.CEA[,var.temp], na.rm = TRUE))/sd(AEDB.CEA[,var.temp], na.rm = TRUE))
        list(RANK = ~ qnorm((rank(AEDB.CEA[,var.temp], na.last = "keep") - 0.5) / sum(!is.na(AEDB.CEA[,var.temp]))))
      )
  # str(UCORBIOGSAqc$Z)
  cat(paste0("* renaming RANK to ", var.temp.rank,".\n"))
  AEDB.CEA[,var.temp.rank] <- NULL
  names(AEDB.CEA)[names(AEDB.CEA) == "RANK"] <- var.temp.rank
}

Selecting IL2 and standardising: IL2_rank.
* changing IL2 to numeric.
* standardising IL2 (mean: 0.179942, n = 436).
* renaming RANK to IL2_rank.

Selecting IL4 and standardising: IL4_rank.
* changing IL4 to numeric.
* standardising IL4 (mean: 0.167561, n = 406).
* renaming RANK to IL4_rank.

Selecting IL5 and standardising: IL5_rank.
* changing IL5 to numeric.
* standardising IL5 (mean: 0.178291, n = 432).
* renaming RANK to IL5_rank.

Selecting IL6 and standardising: IL6_rank.
* changing IL6 to numeric.
* standardising IL6 (mean: 0.188196, n = 456).
* renaming RANK to IL6_rank.

Selecting IL8 and standardising: IL8_rank.
* changing IL8 to numeric.
* standardising IL8 (mean: 0.182006, n = 441).
* renaming RANK to IL8_rank.

Selecting IL9 and standardising: IL9_rank.
* changing IL9 to numeric.
* standardising IL9 (mean: 0.206356, n = 500).
* renaming RANK to IL9_rank.

Selecting IL10 and standardising: IL10_rank.
* changing IL10 to numeric.
* standardising IL10 (mean: 0.158894, n = 385).
* renaming RANK to IL10_rank.

Selecting IL12 and standardising: IL12_rank.
* changing IL12 to numeric.
* standardising IL12 (mean: 0.167974, n = 407).
* renaming RANK to IL12_rank.

Selecting IL13 and standardising: IL13_rank.
* changing IL13 to numeric.
* standardising IL13 (mean: 0.232769, n = 564).
* renaming RANK to IL13_rank.

Selecting IL21 and standardising: IL21_rank.
* changing IL21 to numeric.
* standardising IL21 (mean: 0.233182, n = 565).
* renaming RANK to IL21_rank.

Selecting INFG and standardising: INFG_rank.
* changing INFG to numeric.
* standardising INFG (mean: 0.179117, n = 434).
* renaming RANK to INFG_rank.

Selecting TNFA and standardising: TNFA_rank.
* changing TNFA to numeric.
* standardising TNFA (mean: 0.163434, n = 396).
* renaming RANK to TNFA_rank.

Selecting MIF and standardising: MIF_rank.
* changing MIF to numeric.
* standardising MIF (mean: 0.233182, n = 565).
* renaming RANK to MIF_rank.

Selecting MCP1 and standardising: MCP1_rank.
* changing MCP1 to numeric.
* standardising MCP1 (mean: 0.229468, n = 556).
* renaming RANK to MCP1_rank.

Selecting MIP1a and standardising: MIP1a_rank.
* changing MIP1a to numeric.
* standardising MIP1a (mean: 0.211721, n = 513).
* renaming RANK to MIP1a_rank.

Selecting RANTES and standardising: RANTES_rank.
* changing RANTES to numeric.
* standardising RANTES (mean: 0.228642, n = 554).
* renaming RANK to RANTES_rank.

Selecting MIG and standardising: MIG_rank.
* changing MIG to numeric.
* standardising MIG (mean: 0.226991, n = 550).
* renaming RANK to MIG_rank.

Selecting IP10 and standardising: IP10_rank.
* changing IP10 to numeric.
* standardising IP10 (mean: 0.205943, n = 499).
* renaming RANK to IP10_rank.

Selecting Eotaxin1 and standardising: Eotaxin1_rank.
* changing Eotaxin1 to numeric.
* standardising Eotaxin1 (mean: 0.233182, n = 565).
* renaming RANK to Eotaxin1_rank.

Selecting TARC and standardising: TARC_rank.
* changing TARC to numeric.
* standardising TARC (mean: 0.200578, n = 486).
* renaming RANK to TARC_rank.

Selecting PARC and standardising: PARC_rank.
* changing PARC to numeric.
* standardising PARC (mean: 0.233182, n = 565).
* renaming RANK to PARC_rank.

Selecting MDC and standardising: MDC_rank.
* changing MDC to numeric.
* standardising MDC (mean: 0.209657, n = 508).
* renaming RANK to MDC_rank.

Selecting OPG and standardising: OPG_rank.
* changing OPG to numeric.
* standardising OPG (mean: 0.232769, n = 564).
* renaming RANK to OPG_rank.

Selecting sICAM1 and standardising: sICAM1_rank.
* changing sICAM1 to numeric.
* standardising sICAM1 (mean: 0.233182, n = 565).
* renaming RANK to sICAM1_rank.

Selecting VEGFA and standardising: VEGFA_rank.
* changing VEGFA to numeric.
* standardising VEGFA (mean: 0.201403, n = 488).
* renaming RANK to VEGFA_rank.

Selecting TGFB and standardising: TGFB_rank.
* changing TGFB to numeric.
* standardising TGFB (mean: 0.22988, n = 557).
* renaming RANK to TGFB_rank.

Selecting MMP2 and standardising: MMP2_rank.
* changing MMP2 to numeric.
* standardising MMP2 (mean: 0.231944, n = 562).
* renaming RANK to MMP2_rank.

Selecting MMP8 and standardising: MMP8_rank.
* changing MMP8 to numeric.
* standardising MMP8 (mean: 0.231944, n = 562).
* renaming RANK to MMP8_rank.

Selecting MMP9 and standardising: MMP9_rank.
* changing MMP9 to numeric.
* standardising MMP9 (mean: 0.231531, n = 561).
* renaming RANK to MMP9_rank.
# rm(var.temp, var.temp.rank)

Visualize transformations

We will just visualize these transformations.

proteins_of_interest_rank_mcp1 <- c("MCP1_pg_ml_2015_rank", proteins_of_interest_rank)

proteins_of_interest_mcp1 <- c("MCP1_pg_ml_2015", proteins_of_interest)

for(PROTEIN in proteins_of_interest_mcp1){
  cat(paste0("Plotting protein ", PROTEIN, ".\n"))
  
  p1 <- ggpubr::gghistogram(AEDB.CEA, PROTEIN,
                    # y = "..count..",
                    color = "white",
                    fill = "Gender",
                    palette = c("#1290D9", "#DB003F"),
                    add = "mean",
                    # rug = TRUE,
                    # add.params =  list(color = "black", linetype = 2),
                    title = paste0(PROTEIN, " plaque levels"),
                    xlab = "",
                    ggtheme = theme_minimal())
  print(p1)
  
}
Plotting protein MCP1_pg_ml_2015.
Using `bins = 30` by default. Pick better value with the argument `bins`.
Plotting protein IL2.
Plotting protein IL4.
Plotting protein IL5.
Plotting protein IL6.
Plotting protein IL8.
Plotting protein IL9.
Plotting protein IL10.
Plotting protein IL12.
Plotting protein IL13.
Plotting protein IL21.
Plotting protein INFG.
Plotting protein TNFA.
Plotting protein MIF.
Plotting protein MCP1.
Plotting protein MIP1a.
Plotting protein RANTES.
Plotting protein MIG.
Plotting protein IP10.
Plotting protein Eotaxin1.
Plotting protein TARC.
Plotting protein PARC.
Plotting protein MDC.
Plotting protein OPG.
Plotting protein sICAM1.
Plotting protein VEGFA.
Plotting protein TGFB.
Plotting protein MMP2.
Plotting protein MMP8.
Plotting protein MMP9.

for(PROTEIN in proteins_of_interest_rank_mcp1){
  cat(paste0("Plotting protein ", PROTEIN, ".\n"))
  
  p1 <- ggpubr::gghistogram(AEDB.CEA, PROTEIN,
                    # y = "..count..",
                    color = "white",
                    fill = "Gender",
                    palette = c("#1290D9", "#DB003F"),
                    add = "mean",
                    # rug = TRUE,
                    # add.params =  list(color = "black", linetype = 2),
                    title = paste0(PROTEIN, " plaque levels"),
                    xlab = "inverse-normal transformation",
                    ggtheme = theme_minimal())
  print(p1)
  
}
Plotting protein MCP1_pg_ml_2015_rank.
Using `bins = 30` by default. Pick better value with the argument `bins`.
Plotting protein IL2_rank.
Plotting protein IL4_rank.
Plotting protein IL5_rank.
Plotting protein IL6_rank.
Plotting protein IL8_rank.
Plotting protein IL9_rank.
Plotting protein IL10_rank.
Plotting protein IL12_rank.
Plotting protein IL13_rank.
Plotting protein IL21_rank.
Plotting protein INFG_rank.
Plotting protein TNFA_rank.
Plotting protein MIF_rank.
Plotting protein MCP1_rank.
Plotting protein MIP1a_rank.
Plotting protein RANTES_rank.
Plotting protein MIG_rank.
Plotting protein IP10_rank.
Plotting protein Eotaxin1_rank.
Plotting protein TARC_rank.
Plotting protein PARC_rank.
Plotting protein MDC_rank.
Plotting protein OPG_rank.
Plotting protein sICAM1_rank.
Plotting protein VEGFA_rank.
Plotting protein TGFB_rank.
Plotting protein MMP2_rank.
Plotting protein MMP8_rank.
Plotting protein MMP9_rank.

NA

Correlations

Here we calculate correlations between MCP1_pg_ug_2015 and 28 other cytokines (including MCP1 as measured in experiment 1. We use Spearman’s test, thus, correlations a given in rho. Please note the indications of measurement methods:

  • L: LUMINEX
  • E: ELISA
  • a: activity assay
# Installation of ggcorrplot()
# --------------------------------
if(!require(devtools)) 
  install.packages("devtools")
devtools::install_github("kassambara/ggcorrplot")
Skipping install of 'ggcorrplot' from a github remote, the SHA1 (ad71a164) has not changed since last install.
  Use `force = TRUE` to force installation
library(ggcorrplot)

# Creating matrix - inverse-rank transformation
# --------------------------------
AEDB.CEA.temp <- subset(AEDB.CEA, 
                          select = c(proteins_of_interest_rank_mcp1)
                                    )

# str(AEDB.CEA.temp)
AEDB.CEA.matrix.RANK <- as.matrix(AEDB.CEA.temp)
rm(AEDB.CEA.temp)

corr_biomarkers.rank <- round(cor(AEDB.CEA.matrix.RANK, 
                             use = "pairwise.complete.obs", #the correlation or covariance between each pair of variables is computed using all complete pairs of observations on those variables
                             method = "spearman"), 3)
# corr_biomarkers.rank

rename_proteins_of_interest_mcp1 <- c("MCP1 (L, exp2, pg/mL)", 
                                    "IL2", "IL4", "IL5", "IL6", "IL8", "IL9", "IL10", "IL12", 
                                    "IL13 (L)", "IL21 (L)", 
                                    "INFG", "TNFA", "MIF (L)", 
                                    "MCP1 (L, exp1)", "MIP1a (L)", "RANTES (L)", "MIG (L)", "IP10 (L)", 
                                    "Eotaxin1 (L)", "TARC (L)", "PARC (L)", "MDC (L)", 
                                    "OPG (L)", "sICAM1 (L)", "VEGFA (E)", "TGFB (E)", "MMP2 (a)", "MMP8 (a)", "MMP9 (a)")
colnames(corr_biomarkers.rank) <- c(rename_proteins_of_interest_mcp1)
rownames(corr_biomarkers.rank) <- c(rename_proteins_of_interest_mcp1)

corr_biomarkers_p.rank <- ggcorrplot::cor_pmat(AEDB.CEA.matrix.RANK, use = "pairwise.complete.obs", method = "spearman")
Cannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with tiesCannot compute exact p-value with ties
# ++++++++++++++++++++++++++++
# flattenCorrMatrix
# ++++++++++++++++++++++++++++
# cormat : matrix of the correlation coefficients
# pmat : matrix of the correlation p-values
flattenCorrMatrix <- function(cormat, pmat) {
  ut <- upper.tri(cormat)
  data.frame(
    row = rownames(cormat)[row(cormat)[ut]],
    column = rownames(cormat)[col(cormat)[ut]],
    cor  =(cormat)[ut],
    p = pmat[ut]
    )
}

corr_biomarkers.rank.df <- flattenCorrMatrix(corr_biomarkers.rank, corr_biomarkers_p.rank)


names(corr_biomarkers.rank.df)[names(corr_biomarkers.rank.df) == "row"] <- "Cytokine_X"
names(corr_biomarkers.rank.df)[names(corr_biomarkers.rank.df) == "column"] <- "CytokineY"
names(corr_biomarkers.rank.df)[names(corr_biomarkers.rank.df) == "cor"] <- "SpearmanRho"

DT::datatable(corr_biomarkers.rank.df)

fwrite(corr_biomarkers.rank.df, file = paste0(OUT_loc, "/",Today,".correlation_cytokines.txt"))
# Add correlation coefficients
# --------------------------------
# argument lab = TRUE
p1 <- ggcorrplot(corr_biomarkers.rank, 
           method = "square", 
           type = "lower",
           title = "Cross biomarker correlations", 
           show.legend = TRUE, legend.title = bquote("Spearman's"~italic(rho)),
           ggtheme = ggplot2::theme_minimal, outline.color = "#FFFFFF",
           show.diag = TRUE,
           hc.order = FALSE, 
           lab = FALSE,
           digits = 3,
           tl.cex = 6,
           # xlab = c("MCP1"),
           # p.mat = corr_biomarkers_p.rank, sig.level = 0.05,
           colors = c("#1290D9", "#FFFFFF", "#E55738"))
p1
ggsave(filename = paste0(PLOT_loc, "/", Today, ".correlation_cytokines.png"), plot = last_plot())
Saving 7.29 x 4.51 in image
ggsave(filename = paste0(PLOT_loc, "/", Today, ".correlation_cytokines.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

rm(p1)

While visually actractive we are not necessarily interested in the correlations between all the cytokines, rather of MCP1 with other cytokines only.

temp <- subset(corr_biomarkers.rank.df, Cytokine_X == "MCP1 (L, exp2, pg/mL)" )
temp$p_log10 <- -log10(temp$p)
p_threshold <- -log10(0.05/29)
p_threshold
[1] 2.763428
p1 <- ggbarplot(temp, x = "CytokineY", y = "SpearmanRho",
          fill = "CytokineY",               # change fill color by cyl
          # color = "white",            # Set bar border colors to white
          palette = uithof_color,            # jco journal color palett. see ?ggpar
          xlab = "Cytokine",
          ylab = expression("Spearman's"~italic(rho)),
          sort.val = "desc",          # Sort the value in dscending order
          sort.by.groups = FALSE,     # Don't sort inside each group
          x.text.angle = 45, # Rotate vertically x axis texts
          cex = 0.8
          )
ggpar(p1, legend = "bottom", 
      legend.title = "") +
  theme(axis.text.x = element_text(size = 9),
        axis.text.y = element_text(size = 9)) 

ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.barplot_pgmL.MCP1_exp2_vs_Cytokines.png"), plot = last_plot())
Saving 7.29 x 4.51 in image
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.barplot_pgmL.MCP1_exp2_vs_Cytokines.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

rm(p1)

temp <- subset(corr_biomarkers.rank.df, Cytokine_X == "MCP1 (L, exp1)" )
temp$p_log10 <- -log10(temp$p)
p_threshold <- -log10(0.05/29)
p_threshold
[1] 2.763428
p1 <- ggbarplot(temp, x = "CytokineY", y = "SpearmanRho",
          fill = "CytokineY",               # change fill color by cyl
          # color = "white",            # Set bar border colors to white
          palette = uithof_color,            # jco journal color palett. see ?ggpar
          xlab = "Cytokine",
          ylab = expression("Spearman's"~italic(rho)),
          sort.val = "desc",          # Sort the value in dscending order
          sort.by.groups = FALSE,     # Don't sort inside each group
          x.text.angle = 45, # Rotate vertically x axis texts
          cex = 0.8
          )
ggpar(p1, legend = "bottom", 
      legend.title = "") +
  theme(axis.text.x = element_text(size = 9),
        axis.text.y = element_text(size = 9)) 

ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.barplot_pgmL.MCP1_exp1_vs_Cytokines.png"), plot = last_plot())
Saving 7.29 x 4.51 in image
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.barplot_pgmL.MCP1_exp1_vs_Cytokines.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

rm(p1)

Another version - probably not good.

temp <- subset(corr_biomarkers.rank.df, Cytokine_X == "MCP1 (L, exp2, pg/mL)" )
temp$p_log10 <- -log10(temp$p)
p_threshold <- -log10(0.05/29)
p_threshold
[1] 2.763428
p1 <- ggdotchart(temp, x = "CytokineY", y = "p_log10",
           color = "CytokineY", #fill = "CytokineY",                              # Color by groups
           palette = uithof_color, # Custom color palette
           xlab = "Cytokine",
           ylab = expression(log[10]~"("~italic(p)~")-value"),
           ylim = c(0, 9),
           sorting = "descending",                       # Sort value in descending order
           add = "segments",                             # Add segments from y = 0 to dots
           rotate = FALSE,                                # Rotate vertically
           # group = "CytokineY",                                # Order by groups
           dot.size = 8,                                 # Large dot size
           label = round(temp$SpearmanRho, digits = 3),                        # Add mpg values as dot labels
           font.label = list(color = "white", size = 8, 
                             vjust = 0.5)                   
           )
ggpar(p1, legend = "", 
      legend.title = "") +
  theme(axis.text.x = element_text(size = 9),
        axis.text.y = element_text(size = 9))

ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.dotchart.MCP1_vs_Cytokines.png"), plot = last_plot())
Saving 7.29 x 4.51 in image
ggsave(file = paste0(PLOT_loc, "/",Today,".AEDB.CEA.MCP1.plaque.dotchart.MCP1_vs_Cytokines.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

rm(temp, p1)

MCP1 vs. cytokines plaque levels lm()

Model 1

In this model we correct for Age, Gender, and year of surgery.

Here we use the inverse-rank normalized data - visually this is more normally distributed.

Analysis of plaque cytokines traits as a function of plaque MCP1 levels.


GLM.results <- data.frame(matrix(NA, ncol = 15, nrow = 0))
cat("Running linear regression...\n")
Running linear regression...
for (protein in 1:length(TRAITS.PROTEIN.RANK)) {
  PROTEIN = TRAITS.PROTEIN.RANK[protein]
  cat(paste0("\nAnalysis of ",PROTEIN,".\n"))
  for (trait in 1:length(proteins_of_interest_rank)) {
    TRAIT = proteins_of_interest_rank[trait]
    cat(paste0("\n- processing ",TRAIT,"\n\n"))
    currentDF <- as.data.frame(AEDB.CEA %>%
      dplyr::select(., PROTEIN, TRAIT, COVARIATES_M1) %>%
      filter(complete.cases(.))) %>%
      filter_if(~is.numeric(.), all_vars(!is.infinite(.)))
    # for debug
    # print(DT::datatable(currentDF))
    # print(nrow(currentDF))
    # print(str(currentDF))
    ### univariate
    fit <- lm(currentDF[,PROTEIN] ~ currentDF[,TRAIT] + Age + Gender + ORdate_year, data = currentDF)
    model_step <- stepAIC(fit, direction = "both", trace = FALSE)
    print(model_step)
    print(summary(fit))

    GLM.results.TEMP <- data.frame(matrix(NA, ncol = 15, nrow = 0))
    GLM.results.TEMP[1,] = GLM.CON(fit, "AEDB.CEA", PROTEIN, TRAIT, verbose = TRUE)
    GLM.results = rbind(GLM.results, GLM.results.TEMP)
  }
}

Analysis of MCP1_pg_ml_2015_rank.

- processing IL2_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
         439.52974            -0.08325             0.21160            -0.21965  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.0911 -0.5531 -0.0990  0.4573  2.6749 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        450.388268 105.057037   4.287 2.37e-05 ***
currentDF[, TRAIT]  -0.079670   0.049891  -1.597   0.1112    
Age                  0.006158   0.005594   1.101   0.2718    
Gendermale           0.207882   0.105274   1.975   0.0491 *  
ORdate_year         -0.225272   0.052455  -4.295 2.29e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8921 on 336 degrees of freedom
Multiple R-squared:  0.06631,   Adjusted R-squared:  0.0552 
F-statistic: 5.966 on 4 and 336 DF,  p-value: 0.0001197

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' IL2_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: IL2_rank 
Effect size...............: -0.07967 
Standard error............: 0.049891 
Odds ratio (effect size)..: 0.923 
Lower 95% CI..............: 0.837 
Upper 95% CI..............: 1.018 
T-value...................: -1.596881 
P-value...................: 0.1112322 
R^2.......................: 0.066314 
Adjusted r^2..............: 0.055199 
Sample size of AE DB......: 2423 
Sample size of model......: 341 
Missing data %............: 85.92654 

- processing IL4_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          540.5738             -0.1171              0.1848             -0.2701  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.0091 -0.5472 -0.1075  0.4856  2.6161 

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)        549.80994  111.55762   4.928 1.35e-06 ***
currentDF[, TRAIT]  -0.11149    0.05084  -2.193   0.0291 *  
Age                  0.00713    0.00565   1.262   0.2079    
Gendermale           0.17874    0.10843   1.648   0.1003    
ORdate_year         -0.27492    0.05570  -4.936 1.30e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8675 on 311 degrees of freedom
Multiple R-squared:  0.09242,   Adjusted R-squared:  0.08074 
F-statistic: 7.917 on 4 and 311 DF,  p-value: 4.345e-06

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' IL4_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: IL4_rank 
Effect size...............: -0.111487 
Standard error............: 0.050839 
Odds ratio (effect size)..: 0.895 
Lower 95% CI..............: 0.81 
Upper 95% CI..............: 0.988 
T-value...................: -2.192931 
P-value...................: 0.02905265 
R^2.......................: 0.092417 
Adjusted r^2..............: 0.080744 
Sample size of AE DB......: 2423 
Sample size of model......: 316 
Missing data %............: 86.95832 

- processing IL5_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Gender + ORdate_year, data = currentDF)

Coefficients:
(Intercept)   Gendermale  ORdate_year  
   503.0037       0.2535      -0.2513  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.99155 -0.54478 -0.07638  0.50816  2.54186 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        537.457180 106.206389   5.060 6.93e-07 ***
currentDF[, TRAIT]  -0.058497   0.048500  -1.206   0.2286    
Age                  0.007261   0.005456   1.331   0.1842    
Gendermale           0.238482   0.103166   2.312   0.0214 *  
ORdate_year         -0.268776   0.053031  -5.068 6.67e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8697 on 333 degrees of freedom
Multiple R-squared:  0.08729,   Adjusted R-squared:  0.07632 
F-statistic: 7.962 on 4 and 333 DF,  p-value: 3.862e-06

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' IL5_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: IL5_rank 
Effect size...............: -0.058497 
Standard error............: 0.0485 
Odds ratio (effect size)..: 0.943 
Lower 95% CI..............: 0.858 
Upper 95% CI..............: 1.037 
T-value...................: -1.206137 
P-value...................: 0.2286207 
R^2.......................: 0.087288 
Adjusted r^2..............: 0.076324 
Sample size of AE DB......: 2423 
Sample size of model......: 338 
Missing data %............: 86.05035 

- processing IL6_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]                 Age          Gendermale         ORdate_year  
        599.930101            0.073020            0.008033            0.319352           -0.300019  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.8218 -0.5577 -0.1269  0.4803  2.9552 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        599.930101 102.191239   5.871 1.02e-08 ***
currentDF[, TRAIT]   0.073020   0.048887   1.494  0.13617    
Age                  0.008033   0.005661   1.419  0.15682    
Gendermale           0.319352   0.105481   3.028  0.00265 ** 
ORdate_year         -0.300019   0.051030  -5.879 9.69e-09 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9062 on 347 degrees of freedom
Multiple R-squared:  0.1111,    Adjusted R-squared:  0.1008 
F-statistic: 10.84 on 4 and 347 DF,  p-value: 2.717e-08

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' IL6_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: IL6_rank 
Effect size...............: 0.07302 
Standard error............: 0.048887 
Odds ratio (effect size)..: 1.076 
Lower 95% CI..............: 0.977 
Upper 95% CI..............: 1.184 
T-value...................: 1.493662 
P-value...................: 0.1361728 
R^2.......................: 0.111087 
Adjusted r^2..............: 0.10084 
Sample size of AE DB......: 2423 
Sample size of model......: 352 
Missing data %............: 85.47255 

- processing IL8_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          697.4928              0.2632              0.3070             -0.3484  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.1950 -0.5389 -0.0682  0.4695  2.8229 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        705.900501  95.458877   7.395 1.13e-12 ***
currentDF[, TRAIT]   0.260289   0.048081   5.414 1.18e-07 ***
Age                  0.004083   0.005398   0.756  0.44998    
Gendermale           0.309080   0.102061   3.028  0.00265 ** 
ORdate_year         -0.352754   0.047664  -7.401 1.09e-12 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8578 on 337 degrees of freedom
Multiple R-squared:  0.1946,    Adjusted R-squared:  0.1851 
F-statistic: 20.36 on 4 and 337 DF,  p-value: 4.877e-15

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' IL8_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: IL8_rank 
Effect size...............: 0.260289 
Standard error............: 0.048081 
Odds ratio (effect size)..: 1.297 
Lower 95% CI..............: 1.181 
Upper 95% CI..............: 1.426 
T-value...................: 5.413579 
P-value...................: 1.175805e-07 
R^2.......................: 0.194641 
Adjusted r^2..............: 0.185082 
Sample size of AE DB......: 2423 
Sample size of model......: 342 
Missing data %............: 85.88527 

- processing IL9_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          392.8674              0.0749              0.3238             -0.1964  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.0238 -0.5958 -0.1203  0.5313  2.9019 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        396.752588  88.227745   4.497  9.2e-06 ***
currentDF[, TRAIT]   0.077561   0.049808   1.557   0.1203    
Age                  0.002510   0.005644   0.445   0.6568    
Gendermale           0.322682   0.104664   3.083   0.0022 ** 
ORdate_year         -0.198406   0.044047  -4.504  8.9e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.944 on 376 degrees of freedom
Multiple R-squared:  0.07918,   Adjusted R-squared:  0.06939 
F-statistic: 8.083 on 4 and 376 DF,  p-value: 2.921e-06

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' IL9_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: IL9_rank 
Effect size...............: 0.077561 
Standard error............: 0.049808 
Odds ratio (effect size)..: 1.081 
Lower 95% CI..............: 0.98 
Upper 95% CI..............: 1.191 
T-value...................: 1.557216 
P-value...................: 0.1202604 
R^2.......................: 0.079185 
Adjusted r^2..............: 0.069389 
Sample size of AE DB......: 2423 
Sample size of model......: 381 
Missing data %............: 84.27569 

- processing IL10_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Gender + ORdate_year, data = currentDF)

Coefficients:
(Intercept)   Gendermale  ORdate_year  
   506.2501       0.2847      -0.2530  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.94534 -0.57186 -0.08303  0.49245  2.61786 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        532.461068 120.554405   4.417 1.41e-05 ***
currentDF[, TRAIT]  -0.050056   0.054193  -0.924   0.3564    
Age                  0.006172   0.005829   1.059   0.2905    
Gendermale           0.263904   0.112020   2.356   0.0191 *  
ORdate_year         -0.266274   0.060183  -4.424 1.36e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8827 on 296 degrees of freedom
Multiple R-squared:  0.08049,   Adjusted R-squared:  0.06807 
F-statistic: 6.478 on 4 and 296 DF,  p-value: 5.213e-05

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' IL10_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: IL10_rank 
Effect size...............: -0.050056 
Standard error............: 0.054193 
Odds ratio (effect size)..: 0.951 
Lower 95% CI..............: 0.855 
Upper 95% CI..............: 1.058 
T-value...................: -0.923655 
P-value...................: 0.356418 
R^2.......................: 0.080495 
Adjusted r^2..............: 0.068069 
Sample size of AE DB......: 2423 
Sample size of model......: 301 
Missing data %............: 87.57738 

- processing IL12_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
         548.41879            -0.08958             0.24946            -0.27403  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.96858 -0.54923 -0.09087  0.49552  2.65880 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        558.567899 112.807135   4.952 1.21e-06 ***
currentDF[, TRAIT]  -0.083006   0.050937  -1.630   0.1042    
Age                  0.007858   0.005673   1.385   0.1670    
Gendermale           0.236909   0.106987   2.214   0.0275 *  
ORdate_year         -0.279354   0.056321  -4.960 1.16e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8673 on 311 degrees of freedom
Multiple R-squared:  0.09053,   Adjusted R-squared:  0.07883 
F-statistic: 7.739 on 4 and 311 DF,  p-value: 5.887e-06

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' IL12_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: IL12_rank 
Effect size...............: -0.083006 
Standard error............: 0.050937 
Odds ratio (effect size)..: 0.92 
Lower 95% CI..............: 0.833 
Upper 95% CI..............: 1.017 
T-value...................: -1.629574 
P-value...................: 0.104204 
R^2.......................: 0.090531 
Adjusted r^2..............: 0.078833 
Sample size of AE DB......: 2423 
Sample size of model......: 316 
Missing data %............: 86.95832 

- processing IL13_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
         408.84038             0.08096             0.26397            -0.20434  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.99901 -0.62198 -0.08861  0.53175  2.85876 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        417.755559  83.585739   4.998 8.46e-07 ***
currentDF[, TRAIT]   0.086418   0.045707   1.891  0.05934 .  
Age                  0.004672   0.005140   0.909  0.36389    
Gendermale           0.260898   0.095552   2.730  0.00659 ** 
ORdate_year         -0.208944   0.041733  -5.007 8.10e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9196 on 429 degrees of freedom
Multiple R-squared:  0.07553,   Adjusted R-squared:  0.06691 
F-statistic: 8.762 on 4 and 429 DF,  p-value: 8.314e-07

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' IL13_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: IL13_rank 
Effect size...............: 0.086418 
Standard error............: 0.045707 
Odds ratio (effect size)..: 1.09 
Lower 95% CI..............: 0.997 
Upper 95% CI..............: 1.192 
T-value...................: 1.890677 
P-value...................: 0.05934115 
R^2.......................: 0.075528 
Adjusted r^2..............: 0.066908 
Sample size of AE DB......: 2423 
Sample size of model......: 434 
Missing data %............: 82.08832 

- processing IL21_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
         404.39405             0.06671             0.26022            -0.20212  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.98297 -0.61654 -0.06537  0.53462  2.88093 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        412.360885  83.370793   4.946 1.09e-06 ***
currentDF[, TRAIT]   0.071706   0.046064   1.557  0.12028    
Age                  0.004476   0.005115   0.875  0.38204    
Gendermale           0.257574   0.095475   2.698  0.00725 ** 
ORdate_year         -0.206243   0.041624  -4.955 1.04e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9198 on 430 degrees of freedom
Multiple R-squared:  0.07309,   Adjusted R-squared:  0.06447 
F-statistic: 8.477 on 4 and 430 DF,  p-value: 1.368e-06

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' IL21_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: IL21_rank 
Effect size...............: 0.071706 
Standard error............: 0.046064 
Odds ratio (effect size)..: 1.074 
Lower 95% CI..............: 0.982 
Upper 95% CI..............: 1.176 
T-value...................: 1.556674 
P-value...................: 0.1202837 
R^2.......................: 0.073091 
Adjusted r^2..............: 0.064469 
Sample size of AE DB......: 2423 
Sample size of model......: 435 
Missing data %............: 82.04705 

- processing INFG_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
         624.40653            -0.09079             0.29372            -0.31196  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.95225 -0.57294 -0.08409  0.49377  2.82516 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        633.635976 109.178351   5.804 1.52e-08 ***
currentDF[, TRAIT]  -0.086460   0.054878  -1.576  0.11609    
Age                  0.007030   0.005603   1.255  0.21048    
Gendermale           0.291357   0.106617   2.733  0.00662 ** 
ORdate_year         -0.316806   0.054506  -5.812 1.45e-08 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8871 on 331 degrees of freedom
Multiple R-squared:  0.1125,    Adjusted R-squared:  0.1017 
F-statistic: 10.49 on 4 and 331 DF,  p-value: 5.21e-08

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' INFG_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: INFG_rank 
Effect size...............: -0.08646 
Standard error............: 0.054878 
Odds ratio (effect size)..: 0.917 
Lower 95% CI..............: 0.824 
Upper 95% CI..............: 1.021 
T-value...................: -1.575507 
P-value...................: 0.1160946 
R^2.......................: 0.11247 
Adjusted r^2..............: 0.101745 
Sample size of AE DB......: 2423 
Sample size of model......: 336 
Missing data %............: 86.13289 

- processing TNFA_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Gender + ORdate_year, data = currentDF)

Coefficients:
(Intercept)   Gendermale  ORdate_year  
   550.1031       0.2622      -0.2749  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.89787 -0.54287 -0.04567  0.49646  2.58480 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        576.966996 112.824162   5.114 5.63e-07 ***
currentDF[, TRAIT]  -0.046024   0.050896  -0.904   0.3666    
Age                  0.007178   0.005690   1.262   0.2081    
Gendermale           0.244660   0.106867   2.289   0.0227 *  
ORdate_year         -0.288518   0.056336  -5.121 5.42e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8595 on 301 degrees of freedom
Multiple R-squared:  0.09809,   Adjusted R-squared:  0.08611 
F-statistic: 8.184 on 4 and 301 DF,  p-value: 2.814e-06

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' TNFA_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: TNFA_rank 
Effect size...............: -0.046024 
Standard error............: 0.050896 
Odds ratio (effect size)..: 0.955 
Lower 95% CI..............: 0.864 
Upper 95% CI..............: 1.055 
T-value...................: -0.904282 
P-value...................: 0.3665688 
R^2.......................: 0.098094 
Adjusted r^2..............: 0.086109 
Sample size of AE DB......: 2423 
Sample size of model......: 306 
Missing data %............: 87.37103 

- processing MIF_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Gender + ORdate_year, data = currentDF)

Coefficients:
(Intercept)   Gendermale  ORdate_year  
   402.1448       0.2706      -0.2010  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.91129 -0.60262 -0.06228  0.55583  2.96602 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        357.525975  91.070212   3.926 0.000101 ***
currentDF[, TRAIT]   0.067646   0.048881   1.384 0.167107    
Age                  0.004041   0.005094   0.793 0.428030    
Gendermale           0.264634   0.095298   2.777 0.005727 ** 
ORdate_year         -0.178868   0.045459  -3.935 9.71e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9203 on 430 degrees of freedom
Multiple R-squared:  0.072, Adjusted R-squared:  0.06337 
F-statistic: 8.341 on 4 and 430 DF,  p-value: 1.737e-06

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' MIF_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: MIF_rank 
Effect size...............: 0.067646 
Standard error............: 0.048881 
Odds ratio (effect size)..: 1.07 
Lower 95% CI..............: 0.972 
Upper 95% CI..............: 1.178 
T-value...................: 1.383899 
P-value...................: 0.1671073 
R^2.......................: 0.072001 
Adjusted r^2..............: 0.063368 
Sample size of AE DB......: 2423 
Sample size of model......: 435 
Missing data %............: 82.04705 

- processing MCP1_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          305.3839              0.2222              0.2393             -0.1527  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.1835 -0.6174 -0.0939  0.5408  2.9516 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        313.648565  82.705400   3.792 0.000171 ***
currentDF[, TRAIT]   0.225302   0.043745   5.150 3.98e-07 ***
Age                  0.004970   0.004986   0.997 0.319495    
Gendermale           0.236381   0.093216   2.536 0.011574 *  
ORdate_year         -0.156994   0.041291  -3.802 0.000164 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8911 on 426 degrees of freedom
Multiple R-squared:  0.1224,    Adjusted R-squared:  0.1142 
F-statistic: 14.86 on 4 and 426 DF,  p-value: 2.248e-11

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' MCP1_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: MCP1_rank 
Effect size...............: 0.225302 
Standard error............: 0.043745 
Odds ratio (effect size)..: 1.253 
Lower 95% CI..............: 1.15 
Upper 95% CI..............: 1.365 
T-value...................: 5.150371 
P-value...................: 3.98173e-07 
R^2.......................: 0.122428 
Adjusted r^2..............: 0.114188 
Sample size of AE DB......: 2423 
Sample size of model......: 431 
Missing data %............: 82.21213 

- processing MIP1a_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
         393.90745             0.08625             0.30123            -0.19690  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.0188 -0.6276 -0.0954  0.5264  2.8731 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        396.969693  86.616258   4.583 6.18e-06 ***
currentDF[, TRAIT]   0.087714   0.048336   1.815  0.07034 .  
Age                  0.001742   0.005496   0.317  0.75143    
Gendermale           0.300124   0.102533   2.927  0.00362 ** 
ORdate_year         -0.198485   0.043245  -4.590 6.00e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9358 on 389 degrees of freedom
Multiple R-squared:  0.07865,   Adjusted R-squared:  0.06917 
F-statistic: 8.301 on 4 and 389 DF,  p-value: 1.964e-06

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' MIP1a_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: MIP1a_rank 
Effect size...............: 0.087714 
Standard error............: 0.048336 
Odds ratio (effect size)..: 1.092 
Lower 95% CI..............: 0.993 
Upper 95% CI..............: 1.2 
T-value...................: 1.814678 
P-value...................: 0.0703435 
R^2.......................: 0.078646 
Adjusted r^2..............: 0.069172 
Sample size of AE DB......: 2423 
Sample size of model......: 394 
Missing data %............: 83.73917 

- processing RANTES_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
         327.62609             0.09623             0.26629            -0.16381  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.87164 -0.58387 -0.08473  0.52960  2.97018 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        332.983028  89.291714   3.729 0.000218 ***
currentDF[, TRAIT]   0.101528   0.047860   2.121 0.034475 *  
Age                  0.004957   0.005107   0.971 0.332343    
Gendermale           0.262940   0.095951   2.740 0.006398 ** 
ORdate_year         -0.166649   0.044571  -3.739 0.000210 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9144 on 422 degrees of freedom
Multiple R-squared:  0.07764,   Adjusted R-squared:  0.0689 
F-statistic: 8.881 on 4 and 422 DF,  p-value: 6.824e-07

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' RANTES_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: RANTES_rank 
Effect size...............: 0.101528 
Standard error............: 0.04786 
Odds ratio (effect size)..: 1.107 
Lower 95% CI..............: 1.008 
Upper 95% CI..............: 1.216 
T-value...................: 2.121344 
P-value...................: 0.03447519 
R^2.......................: 0.077641 
Adjusted r^2..............: 0.068898 
Sample size of AE DB......: 2423 
Sample size of model......: 427 
Missing data %............: 82.37722 

- processing MIG_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Gender + ORdate_year, data = currentDF)

Coefficients:
(Intercept)   Gendermale  ORdate_year  
   404.8686       0.2736      -0.2024  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.9925 -0.5977 -0.1095  0.5154  2.9297 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        427.718328  87.574695   4.884 1.48e-06 ***
currentDF[, TRAIT]   0.036122   0.047591   0.759  0.44828    
Age                  0.003277   0.005258   0.623  0.53344    
Gendermale           0.267777   0.097077   2.758  0.00606 ** 
ORdate_year         -0.213864   0.043728  -4.891 1.43e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.925 on 419 degrees of freedom
Multiple R-squared:  0.06996,   Adjusted R-squared:  0.06108 
F-statistic: 7.879 on 4 and 419 DF,  p-value: 3.944e-06

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' MIG_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: MIG_rank 
Effect size...............: 0.036122 
Standard error............: 0.047591 
Odds ratio (effect size)..: 1.037 
Lower 95% CI..............: 0.944 
Upper 95% CI..............: 1.138 
T-value...................: 0.758996 
P-value...................: 0.4482814 
R^2.......................: 0.069959 
Adjusted r^2..............: 0.06108 
Sample size of AE DB......: 2423 
Sample size of model......: 424 
Missing data %............: 82.50103 

- processing IP10_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          400.3374              0.1025              0.2924             -0.2001  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.94733 -0.58274 -0.09808  0.53081  2.89664 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        407.032341  86.721660   4.694 3.74e-06 ***
currentDF[, TRAIT]   0.106331   0.047303   2.248  0.02515 *  
Age                  0.004060   0.005486   0.740  0.45972    
Gendermale           0.289105   0.100577   2.874  0.00427 ** 
ORdate_year         -0.203589   0.043296  -4.702 3.60e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9225 on 383 degrees of freedom
Multiple R-squared:  0.08553,   Adjusted R-squared:  0.07598 
F-statistic: 8.956 on 4 and 383 DF,  p-value: 6.362e-07

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' IP10_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: IP10_rank 
Effect size...............: 0.106331 
Standard error............: 0.047303 
Odds ratio (effect size)..: 1.112 
Lower 95% CI..............: 1.014 
Upper 95% CI..............: 1.22 
T-value...................: 2.247891 
P-value...................: 0.02515147 
R^2.......................: 0.085535 
Adjusted r^2..............: 0.075984 
Sample size of AE DB......: 2423 
Sample size of model......: 388 
Missing data %............: 83.98679 

- processing Eotaxin1_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Gender + ORdate_year, data = currentDF)

Coefficients:
(Intercept)   Gendermale  ORdate_year  
   402.1448       0.2706      -0.2010  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.0014 -0.6096 -0.1007  0.5052  2.9228 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        417.170515  83.883143   4.973 9.53e-07 ***
currentDF[, TRAIT]   0.049261   0.046621   1.057  0.29128    
Age                  0.003995   0.005106   0.783  0.43434    
Gendermale           0.257956   0.095913   2.689  0.00744 ** 
ORdate_year         -0.208627   0.041881  -4.981 9.16e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9212 on 430 degrees of freedom
Multiple R-squared:  0.07028,   Adjusted R-squared:  0.06163 
F-statistic: 8.126 on 4 and 430 DF,  p-value: 2.527e-06

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' Eotaxin1_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: Eotaxin1_rank 
Effect size...............: 0.049261 
Standard error............: 0.046621 
Odds ratio (effect size)..: 1.05 
Lower 95% CI..............: 0.959 
Upper 95% CI..............: 1.151 
T-value...................: 1.056626 
P-value...................: 0.2912753 
R^2.......................: 0.070282 
Adjusted r^2..............: 0.061633 
Sample size of AE DB......: 2423 
Sample size of model......: 435 
Missing data %............: 82.04705 

- processing TARC_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          259.7313              0.1304              0.2372             -0.1299  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.9737 -0.6141 -0.1072  0.5032  2.6997 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)   
(Intercept)        266.159979 102.621677   2.594  0.00988 **
currentDF[, TRAIT]   0.133654   0.051245   2.608  0.00947 **
Age                  0.003268   0.005404   0.605  0.54568   
Gendermale           0.235606   0.102344   2.302  0.02189 * 
ORdate_year         -0.133251   0.051227  -2.601  0.00966 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9182 on 368 degrees of freedom
Multiple R-squared:  0.05708,   Adjusted R-squared:  0.04683 
F-statistic: 5.569 on 4 and 368 DF,  p-value: 0.0002314

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' TARC_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: TARC_rank 
Effect size...............: 0.133654 
Standard error............: 0.051245 
Odds ratio (effect size)..: 1.143 
Lower 95% CI..............: 1.034 
Upper 95% CI..............: 1.264 
T-value...................: 2.608132 
P-value...................: 0.009474563 
R^2.......................: 0.057077 
Adjusted r^2..............: 0.046827 
Sample size of AE DB......: 2423 
Sample size of model......: 373 
Missing data %............: 84.60586 

- processing PARC_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          327.4082              0.1384              0.2771             -0.1637  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.9070 -0.6184 -0.0725  0.5392  3.0240 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        333.667657  86.443553   3.860 0.000131 ***
currentDF[, TRAIT]   0.139435   0.046946   2.970 0.003144 ** 
Age                  0.003913   0.005040   0.776 0.437991    
Gendermale           0.275525   0.094515   2.915 0.003741 ** 
ORdate_year         -0.166963   0.043154  -3.869 0.000126 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.913 on 430 degrees of freedom
Multiple R-squared:  0.08661,   Adjusted R-squared:  0.07811 
F-statistic: 10.19 on 4 and 430 DF,  p-value: 6.827e-08

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' PARC_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: PARC_rank 
Effect size...............: 0.139435 
Standard error............: 0.046946 
Odds ratio (effect size)..: 1.15 
Lower 95% CI..............: 1.049 
Upper 95% CI..............: 1.26 
T-value...................: 2.970091 
P-value...................: 0.003143855 
R^2.......................: 0.086606 
Adjusted r^2..............: 0.078109 
Sample size of AE DB......: 2423 
Sample size of model......: 435 
Missing data %............: 82.04705 

- processing MDC_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Gender + ORdate_year, data = currentDF)

Coefficients:
(Intercept)   Gendermale  ORdate_year  
   408.0877       0.3213      -0.2040  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.99814 -0.59702 -0.08428  0.55183  2.92191 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        374.573357  92.251811   4.060 5.94e-05 ***
currentDF[, TRAIT]   0.057757   0.050953   1.134  0.25769    
Age                  0.001495   0.005455   0.274  0.78413    
Gendermale           0.323557   0.102239   3.165  0.00168 ** 
ORdate_year         -0.187304   0.046050  -4.067 5.77e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9354 on 386 degrees of freedom
Multiple R-squared:  0.07845,   Adjusted R-squared:  0.0689 
F-statistic: 8.215 on 4 and 386 DF,  p-value: 2.29e-06

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' MDC_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: MDC_rank 
Effect size...............: 0.057757 
Standard error............: 0.050953 
Odds ratio (effect size)..: 1.059 
Lower 95% CI..............: 0.959 
Upper 95% CI..............: 1.171 
T-value...................: 1.133543 
P-value...................: 0.2576896 
R^2.......................: 0.078453 
Adjusted r^2..............: 0.068903 
Sample size of AE DB......: 2423 
Sample size of model......: 391 
Missing data %............: 83.86298 

- processing OPG_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          406.1916              0.1514              0.2463             -0.2030  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.7926 -0.6021 -0.1021  0.5371  2.8144 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        414.852239  82.585723   5.023 7.47e-07 ***
currentDF[, TRAIT]   0.154488   0.043687   3.536  0.00045 ***
Age                  0.004756   0.005058   0.940  0.34758    
Gendermale           0.243240   0.094761   2.567  0.01060 *  
ORdate_year         -0.207492   0.041233  -5.032 7.14e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9102 on 429 degrees of freedom
Multiple R-squared:  0.09423,   Adjusted R-squared:  0.08578 
F-statistic: 11.16 on 4 and 429 DF,  p-value: 1.28e-08

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' OPG_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: OPG_rank 
Effect size...............: 0.154488 
Standard error............: 0.043687 
Odds ratio (effect size)..: 1.167 
Lower 95% CI..............: 1.071 
Upper 95% CI..............: 1.271 
T-value...................: 3.536236 
P-value...................: 0.0004500912 
R^2.......................: 0.094227 
Adjusted r^2..............: 0.085781 
Sample size of AE DB......: 2423 
Sample size of model......: 434 
Missing data %............: 82.08832 

- processing sICAM1_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          348.5754              0.1199              0.2743             -0.1743  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.94630 -0.60443 -0.07322  0.52075  2.92462 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        355.162519  84.910547   4.183 3.49e-05 ***
currentDF[, TRAIT]   0.126150   0.044725   2.821  0.00502 ** 
Age                  0.005385   0.005088   1.058  0.29046    
Gendermale           0.272232   0.094590   2.878  0.00420 ** 
ORdate_year         -0.177736   0.042386  -4.193 3.34e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9139 on 430 degrees of freedom
Multiple R-squared:  0.0848,    Adjusted R-squared:  0.07629 
F-statistic: 9.961 on 4 and 430 DF,  p-value: 1.023e-07

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' sICAM1_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: sICAM1_rank 
Effect size...............: 0.12615 
Standard error............: 0.044725 
Odds ratio (effect size)..: 1.134 
Lower 95% CI..............: 1.039 
Upper 95% CI..............: 1.238 
T-value...................: 2.820549 
P-value...................: 0.00501602 
R^2.......................: 0.0848 
Adjusted r^2..............: 0.076287 
Sample size of AE DB......: 2423 
Sample size of model......: 435 
Missing data %............: 82.04705 

- processing VEGFA_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          625.1068              0.2088              0.2828             -0.3123  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.8013 -0.5778 -0.1391  0.4550  2.8829 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        637.536834  95.001315   6.711 7.46e-11 ***
currentDF[, TRAIT]   0.207733   0.047826   4.343 1.82e-05 ***
Age                  0.004984   0.005203   0.958  0.33876    
Gendermale           0.283464   0.099381   2.852  0.00459 ** 
ORdate_year         -0.318649   0.047432  -6.718 7.14e-11 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8676 on 363 degrees of freedom
Multiple R-squared:  0.1388,    Adjusted R-squared:  0.1293 
F-statistic: 14.62 on 4 and 363 DF,  p-value: 4.399e-11

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' VEGFA_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: VEGFA_rank 
Effect size...............: 0.207733 
Standard error............: 0.047826 
Odds ratio (effect size)..: 1.231 
Lower 95% CI..............: 1.121 
Upper 95% CI..............: 1.352 
T-value...................: 4.343473 
P-value...................: 1.822187e-05 
R^2.......................: 0.138758 
Adjusted r^2..............: 0.129267 
Sample size of AE DB......: 2423 
Sample size of model......: 368 
Missing data %............: 84.81222 

- processing TGFB_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Gender + ORdate_year, data = currentDF)

Coefficients:
(Intercept)   Gendermale  ORdate_year  
   433.2702       0.2619      -0.2165  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.9163 -0.6071 -0.1017  0.5428  2.9677 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        420.271319  86.614707   4.852 1.72e-06 ***
currentDF[, TRAIT]   0.048956   0.046165   1.060  0.28954    
Age                  0.003353   0.005156   0.650  0.51589    
Gendermale           0.264868   0.097695   2.711  0.00698 ** 
ORdate_year         -0.210145   0.043243  -4.860 1.66e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9269 on 420 degrees of freedom
Multiple R-squared:  0.07633,   Adjusted R-squared:  0.06754 
F-statistic: 8.677 on 4 and 420 DF,  p-value: 9.758e-07

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' TGFB_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: TGFB_rank 
Effect size...............: 0.048956 
Standard error............: 0.046165 
Odds ratio (effect size)..: 1.05 
Lower 95% CI..............: 0.959 
Upper 95% CI..............: 1.15 
T-value...................: 1.060461 
P-value...................: 0.2895444 
R^2.......................: 0.076334 
Adjusted r^2..............: 0.067537 
Sample size of AE DB......: 2423 
Sample size of model......: 425 
Missing data %............: 82.45976 

- processing MMP2_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Gender + ORdate_year, data = currentDF)

Coefficients:
(Intercept)   Gendermale  ORdate_year  
   563.6482       0.3221      -0.2816  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.9560 -0.5839 -0.0973  0.5118  3.1719 

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)        559.51950   88.02210   6.357 5.33e-10 ***
currentDF[, TRAIT]   0.03617    0.04616   0.784 0.433740    
Age                  0.00240    0.00506   0.474 0.635456    
Gendermale           0.33046    0.09564   3.455 0.000605 ***
ORdate_year         -0.27966    0.04394  -6.364 5.09e-10 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9122 on 425 degrees of freedom
Multiple R-squared:  0.1113,    Adjusted R-squared:  0.1029 
F-statistic: 13.31 on 4 and 425 DF,  p-value: 3.182e-10

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' MMP2_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: MMP2_rank 
Effect size...............: 0.036166 
Standard error............: 0.046157 
Odds ratio (effect size)..: 1.037 
Lower 95% CI..............: 0.947 
Upper 95% CI..............: 1.135 
T-value...................: 0.78355 
P-value...................: 0.4337405 
R^2.......................: 0.111296 
Adjusted r^2..............: 0.102932 
Sample size of AE DB......: 2423 
Sample size of model......: 430 
Missing data %............: 82.25341 

- processing MMP8_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          563.2526              0.1837              0.2579             -0.2814  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-3.14127 -0.54874 -0.08888  0.49583  3.08371 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        566.655197  85.910098   6.596 1.26e-10 ***
currentDF[, TRAIT]   0.183850   0.044968   4.089 5.19e-05 ***
Age                  0.002163   0.004947   0.437  0.66212    
Gendermale           0.257646   0.094569   2.724  0.00671 ** 
ORdate_year         -0.283185   0.042890  -6.603 1.21e-10 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8954 on 425 degrees of freedom
Multiple R-squared:  0.1437,    Adjusted R-squared:  0.1356 
F-statistic: 17.83 on 4 and 425 DF,  p-value: 1.523e-13

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' MMP8_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: MMP8_rank 
Effect size...............: 0.18385 
Standard error............: 0.044968 
Odds ratio (effect size)..: 1.202 
Lower 95% CI..............: 1.1 
Upper 95% CI..............: 1.313 
T-value...................: 4.088516 
P-value...................: 5.192815e-05 
R^2.......................: 0.143692 
Adjusted r^2..............: 0.135633 
Sample size of AE DB......: 2423 
Sample size of model......: 430 
Missing data %............: 82.25341 

- processing MMP9_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          536.0842              0.1141              0.3002             -0.2679  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.0536 -0.5754 -0.1183  0.5094  3.0413 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        538.771644  87.598569   6.150 1.78e-09 ***
currentDF[, TRAIT]   0.113628   0.044259   2.567  0.01059 *  
Age                  0.001637   0.005008   0.327  0.74392    
Gendermale           0.300070   0.094724   3.168  0.00165 ** 
ORdate_year         -0.269268   0.043733  -6.157 1.72e-09 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9058 on 425 degrees of freedom
Multiple R-squared:  0.1236,    Adjusted R-squared:  0.1154 
F-statistic: 14.99 on 4 and 425 DF,  p-value: 1.817e-11

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' MMP9_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: MMP9_rank 
Effect size...............: 0.113628 
Standard error............: 0.044259 
Odds ratio (effect size)..: 1.12 
Lower 95% CI..............: 1.027 
Upper 95% CI..............: 1.222 
T-value...................: 2.567334 
P-value...................: 0.01058951 
R^2.......................: 0.123604 
Adjusted r^2..............: 0.115355 
Sample size of AE DB......: 2423 
Sample size of model......: 430 
Missing data %............: 82.25341 

Analysis of MCP1_rank.

- processing IL2_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Gender + ORdate_year, data = currentDF)

Coefficients:
(Intercept)   Gendermale  ORdate_year  
   317.7837       0.2414      -0.1587  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.3756 -0.6561 -0.0206  0.6542  2.6675 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)   
(Intercept)        331.200461 103.072538   3.213  0.00142 **
currentDF[, TRAIT]  -0.067438   0.048698  -1.385  0.16687   
Age                 -0.005142   0.005524  -0.931  0.35245   
Gendermale           0.234123   0.107979   2.168  0.03073 * 
ORdate_year         -0.165194   0.051462  -3.210  0.00143 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9691 on 403 degrees of freedom
Multiple R-squared:  0.03965,   Adjusted R-squared:  0.03011 
F-statistic: 4.159 on 4 and 403 DF,  p-value: 0.002591

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' IL2_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: IL2_rank 
Effect size...............: -0.067438 
Standard error............: 0.048698 
Odds ratio (effect size)..: 0.935 
Lower 95% CI..............: 0.85 
Upper 95% CI..............: 1.028 
T-value...................: -1.384828 
P-value...................: 0.1668713 
R^2.......................: 0.039647 
Adjusted r^2..............: 0.030115 
Sample size of AE DB......: 2423 
Sample size of model......: 408 
Missing data %............: 83.16137 

- processing IL4_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Gender + ORdate_year, data = currentDF)

Coefficients:
(Intercept)   Gendermale  ORdate_year  
    396.488        0.302       -0.198  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.3451 -0.6586 -0.0216  0.6565  2.7193 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        395.419104 111.526359   3.546 0.000442 ***
currentDF[, TRAIT]  -0.039830   0.050847  -0.783 0.433930    
Age                 -0.006173   0.005785  -1.067 0.286646    
Gendermale           0.299567   0.113355   2.643 0.008571 ** 
ORdate_year         -0.197249   0.055683  -3.542 0.000447 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9702 on 373 degrees of freedom
Multiple R-squared:  0.05331,   Adjusted R-squared:  0.04316 
F-statistic: 5.251 on 4 and 373 DF,  p-value: 0.0003999

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' IL4_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: IL4_rank 
Effect size...............: -0.03983 
Standard error............: 0.050847 
Odds ratio (effect size)..: 0.961 
Lower 95% CI..............: 0.87 
Upper 95% CI..............: 1.062 
T-value...................: -0.783331 
P-value...................: 0.43393 
R^2.......................: 0.053309 
Adjusted r^2..............: 0.043157 
Sample size of AE DB......: 2423 
Sample size of model......: 378 
Missing data %............: 84.39951 

- processing IL5_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
         384.48883            -0.07448             0.28809            -0.19198  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.4804 -0.6335 -0.0382  0.6628  2.6508 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        369.073757 107.080598   3.447 0.000628 ***
currentDF[, TRAIT]  -0.075767   0.048993  -1.546 0.122783    
Age                 -0.007120   0.005603  -1.271 0.204576    
Gendermale           0.299056   0.108116   2.766 0.005939 ** 
ORdate_year         -0.184049   0.053468  -3.442 0.000638 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9656 on 396 degrees of freedom
Multiple R-squared:  0.05401,   Adjusted R-squared:  0.04446 
F-statistic: 5.653 on 4 and 396 DF,  p-value: 0.0001964

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' IL5_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: IL5_rank 
Effect size...............: -0.075767 
Standard error............: 0.048993 
Odds ratio (effect size)..: 0.927 
Lower 95% CI..............: 0.842 
Upper 95% CI..............: 1.02 
T-value...................: -1.546497 
P-value...................: 0.1227834 
R^2.......................: 0.054014 
Adjusted r^2..............: 0.044458 
Sample size of AE DB......: 2423 
Sample size of model......: 401 
Missing data %............: 83.45027 

- processing IL6_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
         304.00325             0.06981             0.22677            -0.15178  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-3.15866 -0.65200 -0.00741  0.66318  2.69318 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)   
(Intercept)        295.809907  97.929224   3.021  0.00268 **
currentDF[, TRAIT]   0.069665   0.047370   1.471  0.14213   
Age                 -0.005063   0.005497  -0.921  0.35752   
Gendermale           0.230037   0.106708   2.156  0.03167 * 
ORdate_year         -0.147522   0.048896  -3.017  0.00271 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9719 on 420 degrees of freedom
Multiple R-squared:  0.03519,   Adjusted R-squared:  0.026 
F-statistic:  3.83 on 4 and 420 DF,  p-value: 0.004536

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' IL6_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: IL6_rank 
Effect size...............: 0.069665 
Standard error............: 0.04737 
Odds ratio (effect size)..: 1.072 
Lower 95% CI..............: 0.977 
Upper 95% CI..............: 1.176 
T-value...................: 1.470669 
P-value...................: 0.1421293 
R^2.......................: 0.035189 
Adjusted r^2..............: 0.026 
Sample size of AE DB......: 2423 
Sample size of model......: 425 
Missing data %............: 82.45976 

- processing IL8_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]                 Age          Gendermale         ORdate_year  
         455.41647             0.31925            -0.01045             0.22219            -0.22697  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-3.15896 -0.54787 -0.05189  0.56747  2.83787 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        455.416470  91.719536   4.965 1.01e-06 ***
currentDF[, TRAIT]   0.319248   0.047186   6.766 4.63e-11 ***
Age                 -0.010455   0.005209  -2.007   0.0454 *  
Gendermale           0.222191   0.102155   2.175   0.0302 *  
ORdate_year         -0.226974   0.045788  -4.957 1.05e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9134 on 407 degrees of freedom
Multiple R-squared:  0.1467,    Adjusted R-squared:  0.1383 
F-statistic: 17.49 on 4 and 407 DF,  p-value: 2.941e-13

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' IL8_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: IL8_rank 
Effect size...............: 0.319248 
Standard error............: 0.047186 
Odds ratio (effect size)..: 1.376 
Lower 95% CI..............: 1.255 
Upper 95% CI..............: 1.509 
T-value...................: 6.765783 
P-value...................: 4.631788e-11 
R^2.......................: 0.146701 
Adjusted r^2..............: 0.138315 
Sample size of AE DB......: 2423 
Sample size of model......: 412 
Missing data %............: 82.99629 

- processing IL9_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          449.5529              0.2728              0.2753             -0.2244  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.01604 -0.62630 -0.08902  0.62907  2.66902 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        445.416806  71.222529   6.254 8.66e-10 ***
currentDF[, TRAIT]   0.269238   0.040045   6.723 4.91e-11 ***
Age                 -0.004330   0.004633  -0.935  0.35047    
Gendermale           0.277452   0.088478   3.136  0.00182 ** 
ORdate_year         -0.222210   0.035552  -6.250 8.85e-10 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8896 on 495 degrees of freedom
Multiple R-squared:  0.1682,    Adjusted R-squared:  0.1614 
F-statistic: 25.02 on 4 and 495 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' IL9_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: IL9_rank 
Effect size...............: 0.269238 
Standard error............: 0.040045 
Odds ratio (effect size)..: 1.309 
Lower 95% CI..............: 1.21 
Upper 95% CI..............: 1.416 
T-value...................: 6.723338 
P-value...................: 4.907886e-11 
R^2.......................: 0.168152 
Adjusted r^2..............: 0.16143 
Sample size of AE DB......: 2423 
Sample size of model......: 500 
Missing data %............: 79.36442 

- processing IL10_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          406.1557             -0.1134              0.2844             -0.2028  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.4859 -0.6531 -0.0240  0.7019  2.6509 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        398.869702 119.403549   3.341 0.000926 ***
currentDF[, TRAIT]  -0.117134   0.053607  -2.185 0.029543 *  
Age                 -0.007922   0.005967  -1.328 0.185151    
Gendermale           0.298223   0.116386   2.562 0.010810 *  
ORdate_year         -0.198902   0.059610  -3.337 0.000938 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9788 on 353 degrees of freedom
Multiple R-squared:  0.05845,   Adjusted R-squared:  0.04778 
F-statistic: 5.478 on 4 and 353 DF,  p-value: 0.0002735

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' IL10_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: IL10_rank 
Effect size...............: -0.117134 
Standard error............: 0.053607 
Odds ratio (effect size)..: 0.889 
Lower 95% CI..............: 0.801 
Upper 95% CI..............: 0.988 
T-value...................: -2.185044 
P-value...................: 0.02954261 
R^2.......................: 0.058451 
Adjusted r^2..............: 0.047781 
Sample size of AE DB......: 2423 
Sample size of model......: 358 
Missing data %............: 85.22493 

- processing IL12_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
         393.10801            -0.09786             0.30519            -0.19629  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.5214 -0.6373 -0.0335  0.6609  2.6820 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        385.201779 111.303850   3.461 0.000601 ***
currentDF[, TRAIT]  -0.099846   0.050664  -1.971 0.049487 *  
Age                 -0.005609   0.005764  -0.973 0.331137    
Gendermale           0.316927   0.111700   2.837 0.004797 ** 
ORdate_year         -0.192164   0.055571  -3.458 0.000607 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.966 on 374 degrees of freedom
Multiple R-squared:  0.05558,   Adjusted R-squared:  0.04548 
F-statistic: 5.503 on 4 and 374 DF,  p-value: 0.0002583

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' IL12_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: IL12_rank 
Effect size...............: -0.099846 
Standard error............: 0.050664 
Odds ratio (effect size)..: 0.905 
Lower 95% CI..............: 0.819 
Upper 95% CI..............: 0.999 
T-value...................: -1.970771 
P-value...................: 0.04948712 
R^2.......................: 0.055585 
Adjusted r^2..............: 0.045484 
Sample size of AE DB......: 2423 
Sample size of model......: 379 
Missing data %............: 84.35823 

- processing IL13_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          464.1716              0.4014              0.2097             -0.2317  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.6625 -0.6651 -0.0686  0.5793  2.4990 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        462.277252  69.049724   6.695 5.34e-11 ***
currentDF[, TRAIT]   0.400238   0.037890  10.563  < 2e-16 ***
Age                 -0.001378   0.004368  -0.315   0.7525    
Gendermale           0.210670   0.083341   2.528   0.0118 *  
ORdate_year         -0.230718   0.034471  -6.693 5.40e-11 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8808 on 550 degrees of freedom
Multiple R-squared:  0.2245,    Adjusted R-squared:  0.2189 
F-statistic: 39.81 on 4 and 550 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' IL13_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: IL13_rank 
Effect size...............: 0.400238 
Standard error............: 0.03789 
Odds ratio (effect size)..: 1.492 
Lower 95% CI..............: 1.385 
Upper 95% CI..............: 1.607 
T-value...................: 10.56311 
P-value...................: 7.144811e-24 
R^2.......................: 0.224521 
Adjusted r^2..............: 0.218881 
Sample size of AE DB......: 2423 
Sample size of model......: 555 
Missing data %............: 77.09451 

- processing IL21_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          436.2035              0.3523              0.2078             -0.2178  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.5943 -0.6710 -0.0755  0.6157  2.3777 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        432.376101  70.746565   6.112 1.87e-09 ***
currentDF[, TRAIT]   0.350079   0.038816   9.019  < 2e-16 ***
Age                 -0.002970   0.004468  -0.665   0.5065    
Gendermale           0.209696   0.085522   2.452   0.0145 *  
ORdate_year         -0.215744   0.035317  -6.109 1.90e-09 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9045 on 551 degrees of freedom
Multiple R-squared:  0.1873,    Adjusted R-squared:  0.1814 
F-statistic: 31.76 on 4 and 551 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' IL21_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: IL21_rank 
Effect size...............: 0.350079 
Standard error............: 0.038816 
Odds ratio (effect size)..: 1.419 
Lower 95% CI..............: 1.315 
Upper 95% CI..............: 1.531 
T-value...................: 9.018962 
P-value...................: 3.135903e-18 
R^2.......................: 0.187347 
Adjusted r^2..............: 0.181448 
Sample size of AE DB......: 2423 
Sample size of model......: 556 
Missing data %............: 77.05324 

- processing INFG_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Gender + ORdate_year, data = currentDF)

Coefficients:
(Intercept)   Gendermale  ORdate_year  
   435.5907       0.3678      -0.2175  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.4331 -0.6404 -0.0233  0.6720  2.7166 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        471.147317 106.339563   4.431 1.21e-05 ***
currentDF[, TRAIT]  -0.062392   0.051283  -1.217 0.224459    
Age                 -0.004974   0.005589  -0.890 0.374066    
Gendermale           0.360477   0.108341   3.327 0.000958 ***
ORdate_year         -0.235101   0.053086  -4.429 1.23e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9702 on 400 degrees of freedom
Multiple R-squared:  0.07276,   Adjusted R-squared:  0.06349 
F-statistic: 7.848 on 4 and 400 DF,  p-value: 4.264e-06

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' INFG_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: INFG_rank 
Effect size...............: -0.062392 
Standard error............: 0.051283 
Odds ratio (effect size)..: 0.94 
Lower 95% CI..............: 0.85 
Upper 95% CI..............: 1.039 
T-value...................: -1.216638 
P-value...................: 0.2244592 
R^2.......................: 0.072765 
Adjusted r^2..............: 0.063493 
Sample size of AE DB......: 2423 
Sample size of model......: 405 
Missing data %............: 83.28518 

- processing TNFA_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Gender + ORdate_year, data = currentDF)

Coefficients:
(Intercept)   Gendermale  ORdate_year  
   321.0628       0.2653      -0.1603  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.2762 -0.6483  0.0060  0.6411  2.8309 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)   
(Intercept)        308.664496 112.145327   2.752  0.00621 **
currentDF[, TRAIT]   0.009713   0.050789   0.191  0.84844   
Age                 -0.006370   0.005821  -1.094  0.27459   
Gendermale           0.277185   0.112881   2.456  0.01453 * 
ORdate_year         -0.153941   0.055991  -2.749  0.00627 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9721 on 365 degrees of freedom
Multiple R-squared:  0.03932,   Adjusted R-squared:  0.02879 
F-statistic: 3.734 on 4 and 365 DF,  p-value: 0.005412

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' TNFA_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: TNFA_rank 
Effect size...............: 0.009713 
Standard error............: 0.050789 
Odds ratio (effect size)..: 1.01 
Lower 95% CI..............: 0.914 
Upper 95% CI..............: 1.115 
T-value...................: 0.191241 
P-value...................: 0.8484435 
R^2.......................: 0.039317 
Adjusted r^2..............: 0.028789 
Sample size of AE DB......: 2423 
Sample size of model......: 370 
Missing data %............: 84.72967 

- processing MIF_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
         136.44181             0.34462             0.23501            -0.06817  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.3632 -0.6092 -0.0177  0.6642  2.6913 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        133.066491  79.750174   1.669  0.09578 .  
currentDF[, TRAIT]   0.342095   0.043437   7.876 1.81e-14 ***
Age                 -0.004360   0.004529  -0.963  0.33605    
Gendermale           0.237429   0.086694   2.739  0.00637 ** 
ORdate_year         -0.066341   0.039805  -1.667  0.09615 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9186 on 551 degrees of freedom
Multiple R-squared:  0.1617,    Adjusted R-squared:  0.1557 
F-statistic: 26.58 on 4 and 551 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' MIF_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: MIF_rank 
Effect size...............: 0.342095 
Standard error............: 0.043437 
Odds ratio (effect size)..: 1.408 
Lower 95% CI..............: 1.293 
Upper 95% CI..............: 1.533 
T-value...................: 7.875623 
P-value...................: 1.814862e-14 
R^2.......................: 0.161741 
Adjusted r^2..............: 0.155655 
Sample size of AE DB......: 2423 
Sample size of model......: 556 
Missing data %............: 77.05324 

- processing MCP1_rank
attempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsense

Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender, 
    data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale  
         7.231e-17           1.000e+00          -1.008e-16  
essentially perfect fit: summary may be unreliable

Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
       Min         1Q     Median         3Q        Max 
-5.896e-16 -7.360e-17 -1.840e-17  3.040e-17  1.384e-14 

Coefficients:
                     Estimate Std. Error    t value Pr(>|t|)    
(Intercept)         6.014e-14  4.790e-14  1.256e+00   0.2098    
currentDF[, TRAIT]  1.000e+00  2.627e-17  3.807e+16   <2e-16 ***
Age                -1.831e-18  2.945e-18 -6.220e-01   0.5343    
Gendermale         -9.585e-17  5.676e-17 -1.689e+00   0.0919 .  
ORdate_year        -2.992e-17  2.391e-17 -1.251e+00   0.2114    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 5.975e-16 on 551 degrees of freedom
Multiple R-squared:      1, Adjusted R-squared:      1 
F-statistic: 3.885e+32 on 4 and 551 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' MCP1_rank ' .
essentially perfect fit: summary may be unreliable
Collecting data.
essentially perfect fit: summary may be unreliableessentially perfect fit: summary may be unreliableessentially perfect fit: summary may be unreliableessentially perfect fit: summary may be unreliableessentially perfect fit: summary may be unreliableessentially perfect fit: summary may be unreliableessentially perfect fit: summary may be unreliable
We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: MCP1_rank 
Effect size...............: 1 
Standard error............: 0 
Odds ratio (effect size)..: 2.718 
Lower 95% CI..............: 2.718 
Upper 95% CI..............: 2.718 
T-value...................: 3.806931e+16 
P-value...................: 0 
R^2.......................: 1 
Adjusted r^2..............: 1 
Sample size of AE DB......: 2423 
Sample size of model......: 556 
Missing data %............: 77.05324 

- processing MIP1a_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          474.0856              0.3358              0.2006             -0.2366  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-1.79686 -0.65092 -0.06877  0.58497  2.67954 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        468.332834  69.013614   6.786 3.22e-11 ***
currentDF[, TRAIT]   0.332995   0.038566   8.635  < 2e-16 ***
Age                 -0.005195   0.004459  -1.165   0.2446    
Gendermale           0.204041   0.085614   2.383   0.0175 *  
ORdate_year         -0.233591   0.034451  -6.780 3.34e-11 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8684 on 508 degrees of freedom
Multiple R-squared:  0.2051,    Adjusted R-squared:  0.1988 
F-statistic: 32.77 on 4 and 508 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' MIP1a_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: MIP1a_rank 
Effect size...............: 0.332995 
Standard error............: 0.038566 
Odds ratio (effect size)..: 1.395 
Lower 95% CI..............: 1.294 
Upper 95% CI..............: 1.505 
T-value...................: 8.634514 
P-value...................: 7.646036e-17 
R^2.......................: 0.205089 
Adjusted r^2..............: 0.19883 
Sample size of AE DB......: 2423 
Sample size of model......: 513 
Missing data %............: 78.8279 

- processing RANTES_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          202.9668              0.3373              0.2082             -0.1014  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.2792 -0.5356 -0.0162  0.5823  3.0478 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        202.399940  76.702752   2.639  0.00856 ** 
currentDF[, TRAIT]   0.336096   0.042438   7.920 1.35e-14 ***
Age                 -0.001053   0.004542  -0.232  0.81680    
Gendermale           0.208992   0.086714   2.410  0.01628 *  
ORdate_year         -0.101037   0.038283  -2.639  0.00855 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.912 on 544 degrees of freedom
Multiple R-squared:  0.1653,    Adjusted R-squared:  0.1591 
F-statistic: 26.93 on 4 and 544 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' RANTES_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: RANTES_rank 
Effect size...............: 0.336096 
Standard error............: 0.042438 
Odds ratio (effect size)..: 1.399 
Lower 95% CI..............: 1.288 
Upper 95% CI..............: 1.521 
T-value...................: 7.919657 
P-value...................: 1.348892e-14 
R^2.......................: 0.165283 
Adjusted r^2..............: 0.159146 
Sample size of AE DB......: 2423 
Sample size of model......: 549 
Missing data %............: 77.34214 

- processing MIG_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          570.9520              0.2940              0.2282             -0.2850  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.2468 -0.6400 -0.0431  0.6164  2.4929 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        564.938294  74.957612   7.537 2.04e-13 ***
currentDF[, TRAIT]   0.290517   0.041532   6.995 7.86e-12 ***
Age                 -0.003719   0.004609  -0.807  0.42009    
Gendermale           0.230474   0.087474   2.635  0.00866 ** 
ORdate_year         -0.281872   0.037422  -7.532 2.10e-13 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9197 on 541 degrees of freedom
Multiple R-squared:  0.1494,    Adjusted R-squared:  0.1432 
F-statistic: 23.76 on 4 and 541 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' MIG_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: MIG_rank 
Effect size...............: 0.290517 
Standard error............: 0.041532 
Odds ratio (effect size)..: 1.337 
Lower 95% CI..............: 1.233 
Upper 95% CI..............: 1.451 
T-value...................: 6.995086 
P-value...................: 7.859583e-12 
R^2.......................: 0.149445 
Adjusted r^2..............: 0.143156 
Sample size of AE DB......: 2423 
Sample size of model......: 546 
Missing data %............: 77.46595 

- processing IP10_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          410.1428              0.4186              0.2370             -0.2047  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.2812 -0.6240 -0.0607  0.5845  2.3274 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        408.108584  69.680872   5.857 8.64e-09 ***
currentDF[, TRAIT]   0.417366   0.038927  10.722  < 2e-16 ***
Age                 -0.002132   0.004490  -0.475  0.63514    
Gendermale           0.238554   0.084533   2.822  0.00497 ** 
ORdate_year         -0.203660   0.034782  -5.855 8.71e-09 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8559 on 492 degrees of freedom
Multiple R-squared:  0.2476,    Adjusted R-squared:  0.2415 
F-statistic: 40.48 on 4 and 492 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' IP10_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: IP10_rank 
Effect size...............: 0.417366 
Standard error............: 0.038927 
Odds ratio (effect size)..: 1.518 
Lower 95% CI..............: 1.406 
Upper 95% CI..............: 1.638 
T-value...................: 10.72171 
P-value...................: 3.021844e-24 
R^2.......................: 0.247632 
Adjusted r^2..............: 0.241515 
Sample size of AE DB......: 2423 
Sample size of model......: 497 
Missing data %............: 79.48824 

- processing Eotaxin1_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          480.4459              0.3284              0.1907             -0.2398  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.4214 -0.6698 -0.0780  0.6000  2.5515 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        474.710009  71.895573   6.603 9.51e-11 ***
currentDF[, TRAIT]   0.326133   0.039426   8.272 9.95e-16 ***
Age                 -0.004255   0.004505  -0.944    0.345    
Gendermale           0.193342   0.086639   2.232    0.026 *  
ORdate_year         -0.236820   0.035891  -6.598 9.78e-11 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9139 on 551 degrees of freedom
Multiple R-squared:  0.1704,    Adjusted R-squared:  0.1644 
F-statistic: 28.29 on 4 and 551 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' Eotaxin1_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: Eotaxin1_rank 
Effect size...............: 0.326133 
Standard error............: 0.039426 
Odds ratio (effect size)..: 1.386 
Lower 95% CI..............: 1.283 
Upper 95% CI..............: 1.497 
T-value...................: 8.272003 
P-value...................: 9.945147e-16 
R^2.......................: 0.170403 
Adjusted r^2..............: 0.16438 
Sample size of AE DB......: 2423 
Sample size of model......: 556 
Missing data %............: 77.05324 

- processing TARC_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          244.2877              0.2704              0.1328             -0.1220  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.95046 -0.61035 -0.07473  0.62130  2.69438 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        240.766099  89.076405   2.703  0.00712 ** 
currentDF[, TRAIT]   0.267944   0.044061   6.081 2.45e-09 ***
Age                 -0.002735   0.004820  -0.567  0.57068    
Gendermale           0.133451   0.093203   1.432  0.15285    
ORdate_year         -0.120119   0.044459  -2.702  0.00714 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.922 on 476 degrees of freedom
Multiple R-squared:  0.1124,    Adjusted R-squared:  0.1049 
F-statistic: 15.07 on 4 and 476 DF,  p-value: 1.324e-11

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' TARC_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: TARC_rank 
Effect size...............: 0.267944 
Standard error............: 0.044061 
Odds ratio (effect size)..: 1.307 
Lower 95% CI..............: 1.199 
Upper 95% CI..............: 1.425 
T-value...................: 6.08117 
P-value...................: 2.451314e-09 
R^2.......................: 0.112375 
Adjusted r^2..............: 0.104915 
Sample size of AE DB......: 2423 
Sample size of model......: 481 
Missing data %............: 80.14858 

- processing PARC_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]                 Age          Gendermale         ORdate_year  
        162.585286            0.425915           -0.006632            0.277017           -0.081011  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-3.11016 -0.55126 -0.02245  0.58456  2.17519 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        162.585286  72.281906   2.249 0.024886 *  
currentDF[, TRAIT]   0.425915   0.039168  10.874  < 2e-16 ***
Age                 -0.006632   0.004326  -1.533 0.125889    
Gendermale           0.277017   0.082886   3.342 0.000888 ***
ORdate_year         -0.081011   0.036082  -2.245 0.025152 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8792 on 551 degrees of freedom
Multiple R-squared:  0.2322,    Adjusted R-squared:  0.2266 
F-statistic: 41.65 on 4 and 551 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' PARC_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: PARC_rank 
Effect size...............: 0.425915 
Standard error............: 0.039168 
Odds ratio (effect size)..: 1.531 
Lower 95% CI..............: 1.418 
Upper 95% CI..............: 1.653 
T-value...................: 10.87395 
P-value...................: 4.394713e-25 
R^2.......................: 0.232156 
Adjusted r^2..............: 0.226582 
Sample size of AE DB......: 2423 
Sample size of model......: 556 
Missing data %............: 77.05324 

- processing MDC_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          253.6058              0.3792              0.2858             -0.1266  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.9082 -0.6351 -0.0943  0.5437  3.2873 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        250.003830  72.176641   3.464 0.000578 ***
currentDF[, TRAIT]   0.377012   0.040358   9.342  < 2e-16 ***
Age                 -0.004058   0.004424  -0.917 0.359527    
Gendermale           0.288455   0.084892   3.398 0.000733 ***
ORdate_year         -0.124711   0.036026  -3.462 0.000583 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8631 on 503 degrees of freedom
Multiple R-squared:  0.2225,    Adjusted R-squared:  0.2163 
F-statistic: 35.99 on 4 and 503 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' MDC_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: MDC_rank 
Effect size...............: 0.377012 
Standard error............: 0.040358 
Odds ratio (effect size)..: 1.458 
Lower 95% CI..............: 1.347 
Upper 95% CI..............: 1.578 
T-value...................: 9.341649 
P-value...................: 3.06886e-19 
R^2.......................: 0.222496 
Adjusted r^2..............: 0.216313 
Sample size of AE DB......: 2423 
Sample size of model......: 508 
Missing data %............: 79.03426 

- processing OPG_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          440.2481              0.5843              0.1648             -0.2198  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.6155 -0.5348 -0.0631  0.4750  2.5142 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        438.288904  60.992665   7.186 2.18e-12 ***
currentDF[, TRAIT]   0.583484   0.033999  17.162  < 2e-16 ***
Age                 -0.001501   0.003857  -0.389   0.6972    
Gendermale           0.165816   0.073853   2.245   0.0252 *  
ORdate_year         -0.218731   0.030448  -7.184 2.22e-12 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.7796 on 550 degrees of freedom
Multiple R-squared:  0.3925,    Adjusted R-squared:  0.3881 
F-statistic: 88.84 on 4 and 550 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' OPG_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: OPG_rank 
Effect size...............: 0.583484 
Standard error............: 0.033999 
Odds ratio (effect size)..: 1.792 
Lower 95% CI..............: 1.677 
Upper 95% CI..............: 1.916 
T-value...................: 17.16184 
P-value...................: 3.464325e-53 
R^2.......................: 0.392512 
Adjusted r^2..............: 0.388094 
Sample size of AE DB......: 2423 
Sample size of model......: 555 
Missing data %............: 77.09451 

- processing sICAM1_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
         100.25480             0.65142             0.23469            -0.05012  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-3.12956 -0.37673  0.03337  0.42560  2.24890 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        101.612492  59.566339   1.706 0.088596 .  
currentDF[, TRAIT]   0.653254   0.032594  20.042  < 2e-16 ***
Age                  0.001807   0.003650   0.495 0.620785    
Gendermale           0.233698   0.069490   3.363 0.000824 ***
ORdate_year         -0.050855   0.029732  -1.710 0.087739 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.7369 on 551 degrees of freedom
Multiple R-squared:  0.4606,    Adjusted R-squared:  0.4567 
F-statistic: 117.6 on 4 and 551 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' sICAM1_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: sICAM1_rank 
Effect size...............: 0.653254 
Standard error............: 0.032594 
Odds ratio (effect size)..: 1.922 
Lower 95% CI..............: 1.803 
Upper 95% CI..............: 2.049 
T-value...................: 20.042 
P-value...................: 1.602312e-67 
R^2.......................: 0.460602 
Adjusted r^2..............: 0.456687 
Sample size of AE DB......: 2423 
Sample size of model......: 556 
Missing data %............: 77.05324 

- processing VEGFA_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          636.0065              0.3152              0.2101             -0.3175  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.2726 -0.6299 -0.0513  0.6024  2.7533 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        627.435812  87.528538   7.168 3.16e-12 ***
currentDF[, TRAIT]   0.316635   0.046349   6.832 2.76e-11 ***
Age                 -0.005637   0.004958  -1.137   0.2562    
Gendermale           0.209258   0.096821   2.161   0.0312 *  
ORdate_year         -0.312989   0.043693  -7.163 3.26e-12 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9106 on 447 degrees of freedom
Multiple R-squared:  0.1538,    Adjusted R-squared:  0.1463 
F-statistic: 20.32 on 4 and 447 DF,  p-value: 2.158e-15

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' VEGFA_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: VEGFA_rank 
Effect size...............: 0.316635 
Standard error............: 0.046349 
Odds ratio (effect size)..: 1.373 
Lower 95% CI..............: 1.253 
Upper 95% CI..............: 1.503 
T-value...................: 6.831545 
P-value...................: 2.757679e-11 
R^2.......................: 0.153843 
Adjusted r^2..............: 0.146271 
Sample size of AE DB......: 2423 
Sample size of model......: 452 
Missing data %............: 81.34544 

- processing TGFB_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          370.4817              0.1160              0.2732             -0.1850  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.4713 -0.6428 -0.0446  0.6781  2.6902 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        366.409129  78.009902   4.697 3.38e-06 ***
currentDF[, TRAIT]   0.114467   0.042999   2.662  0.00800 ** 
Age                 -0.003384   0.004812  -0.703  0.48216    
Gendermale           0.274764   0.092739   2.963  0.00319 ** 
ORdate_year         -0.182825   0.038942  -4.695 3.41e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9567 on 523 degrees of freedom
Multiple R-squared:  0.07951,   Adjusted R-squared:  0.07247 
F-statistic: 11.29 on 4 and 523 DF,  p-value: 8.501e-09

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' TGFB_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: TGFB_rank 
Effect size...............: 0.114467 
Standard error............: 0.042999 
Odds ratio (effect size)..: 1.121 
Lower 95% CI..............: 1.031 
Upper 95% CI..............: 1.22 
T-value...................: 2.662105 
P-value...................: 0.008004355 
R^2.......................: 0.079508 
Adjusted r^2..............: 0.072468 
Sample size of AE DB......: 2423 
Sample size of model......: 528 
Missing data %............: 78.20883 

- processing MMP2_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          289.5407              0.3330              0.3622             -0.1446  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.4835 -0.5786  0.0060  0.5934  2.6531 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        284.458423  77.752159   3.659 0.000279 ***
currentDF[, TRAIT]   0.330774   0.040358   8.196 1.91e-15 ***
Age                 -0.005165   0.004588  -1.126 0.260745    
Gendermale           0.364122   0.088326   4.122 4.35e-05 ***
ORdate_year         -0.141897   0.038812  -3.656 0.000282 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9102 on 526 degrees of freedom
Multiple R-squared:  0.1664,    Adjusted R-squared:   0.16 
F-statistic: 26.24 on 4 and 526 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' MMP2_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: MMP2_rank 
Effect size...............: 0.330774 
Standard error............: 0.040358 
Odds ratio (effect size)..: 1.392 
Lower 95% CI..............: 1.286 
Upper 95% CI..............: 1.507 
T-value...................: 8.196056 
P-value...................: 1.905934e-15 
R^2.......................: 0.166354 
Adjusted r^2..............: 0.160015 
Sample size of AE DB......: 2423 
Sample size of model......: 531 
Missing data %............: 78.08502 

- processing MMP8_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]                 Age          Gendermale         ORdate_year  
        389.774698            0.432719           -0.007878            0.143507           -0.194289  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.2706 -0.4946  0.0294  0.5473  2.8701 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        389.774698  73.252460   5.321 1.53e-07 ***
currentDF[, TRAIT]   0.432719   0.038141  11.345  < 2e-16 ***
Age                 -0.007878   0.004362  -1.806   0.0715 .  
Gendermale           0.143507   0.084864   1.691   0.0914 .  
ORdate_year         -0.194289   0.036567  -5.313 1.59e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8664 on 526 degrees of freedom
Multiple R-squared:  0.2447,    Adjusted R-squared:  0.239 
F-statistic: 42.61 on 4 and 526 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' MMP8_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: MMP8_rank 
Effect size...............: 0.432719 
Standard error............: 0.038141 
Odds ratio (effect size)..: 1.541 
Lower 95% CI..............: 1.43 
Upper 95% CI..............: 1.661 
T-value...................: 11.34524 
P-value...................: 7.740327e-27 
R^2.......................: 0.244712 
Adjusted r^2..............: 0.238968 
Sample size of AE DB......: 2423 
Sample size of model......: 531 
Missing data %............: 78.08502 

- processing MMP9_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]                 Age          Gendermale         ORdate_year  
         257.60136             0.56444            -0.01056             0.20596            -0.12826  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.1884 -0.5048 -0.0073  0.5197  2.8723 

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)        257.601363  67.289335   3.828 0.000145 ***
currentDF[, TRAIT]   0.564438   0.035147  16.059  < 2e-16 ***
Age                 -0.010561   0.003989  -2.648 0.008352 ** 
Gendermale           0.205960   0.076739   2.684 0.007507 ** 
ORdate_year         -0.128262   0.033591  -3.818 0.000150 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.7912 on 525 degrees of freedom
Multiple R-squared:  0.3698,    Adjusted R-squared:  0.365 
F-statistic: 77.03 on 4 and 525 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' MMP9_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: MMP9_rank 
Effect size...............: 0.564438 
Standard error............: 0.035147 
Odds ratio (effect size)..: 1.758 
Lower 95% CI..............: 1.641 
Upper 95% CI..............: 1.884 
T-value...................: 16.05932 
P-value...................: 1.678039e-47 
R^2.......................: 0.369827 
Adjusted r^2..............: 0.365025 
Sample size of AE DB......: 2423 
Sample size of model......: 530 
Missing data %............: 78.12629 
cat("Edit the column names...\n")
Edit the column names...
colnames(GLM.results) = c("Dataset", "Predictor", "Trait",
                          "Beta", "s.e.m.",
                          "OR", "low95CI", "up95CI",
                          "T-value", "P-value", "r^2", "r^2_adj", "AE_N", "Model_N", "Perc_Miss")

cat("Correct the variable types...\n")
Correct the variable types...
GLM.results$Beta <- as.numeric(GLM.results$Beta)
GLM.results$s.e.m. <- as.numeric(GLM.results$s.e.m.)
GLM.results$OR <- as.numeric(GLM.results$OR)
GLM.results$low95CI <- as.numeric(GLM.results$low95CI)
GLM.results$up95CI <- as.numeric(GLM.results$up95CI)
GLM.results$`T-value` <- as.numeric(GLM.results$`T-value`)
GLM.results$`P-value` <- as.numeric(GLM.results$`P-value`)
GLM.results$`r^2` <- as.numeric(GLM.results$`r^2`)
GLM.results$`r^2_adj` <- as.numeric(GLM.results$`r^2_adj`)
GLM.results$`AE_N` <- as.numeric(GLM.results$`AE_N`)
GLM.results$`Model_N` <- as.numeric(GLM.results$`Model_N`)
GLM.results$`Perc_Miss` <- as.numeric(GLM.results$`Perc_Miss`)
DT::datatable(GLM.results)

# Save the data
cat("Writing results to Excel-file...\n")
Writing results to Excel-file...
### Univariate
library(openxlsx)
write.xlsx(GLM.results,
           file = paste0(OUT_loc, "/",Today,".AEDB.CEA.Con.Uni.MCP1_Plaque.Cytokines_Plaques.RANK.MODEL1.xlsx"),
           row.names = FALSE, col.names = TRUE, sheetName = "Con.Uni.PlaquePheno")
# Removing intermediates
cat("Removing intermediate files...\n")
Removing intermediate files...
rm(TRAIT, trait, currentDF, GLM.results, GLM.results.TEMP, fit, model_step)

Model 2

In this model we correct for Age, Gender, year of surgery, Hypertension status, Diabetes status, current smoker status, lipid-lowering drugs (LLDs), antiplatelet medication, eGFR (MDRD), BMI, MedHx_CVD (combination of CAD history, stroke history, and peripheral interventions), and stenosis.

Here we use the inverse-rank normalized data - visually this is more normally distributed.

Analysis of plaque cytokines as a function of plaque MCP1 levels.


GLM.results <- data.frame(matrix(NA, ncol = 15, nrow = 0))
cat("Running linear regression...\n")
Running linear regression...
for (protein in 1:length(TRAITS.PROTEIN.RANK)) {
  PROTEIN = TRAITS.PROTEIN.RANK[protein]
  cat(paste0("\nAnalysis of ",PROTEIN,".\n"))
  for (trait in 1:length(proteins_of_interest_rank)) {
    TRAIT = proteins_of_interest_rank[trait]
    cat(paste0("\n- processing ",TRAIT,"\n\n"))
    currentDF <- as.data.frame(AEDB.CEA %>%
      dplyr::select(., PROTEIN, TRAIT, COVARIATES_M2) %>%
      filter(complete.cases(.))) %>%
      filter_if(~is.numeric(.), all_vars(!is.infinite(.)))
    # for debug
    # print(DT::datatable(currentDF))
    # print(nrow(currentDF))
    # print(str(currentDF))
    ### univariate
    fit <- lm(currentDF[,PROTEIN] ~ currentDF[,TRAIT] + Age + Gender + ORdate_year + 
                Hypertension.composite + DiabetesStatus + SmokerStatus + 
                Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + BMI + 
                MedHx_CVD + stenose, 
              data = currentDF)
    model_step <- stepAIC(fit, direction = "both", trace = FALSE)
    print(model_step)
    print(summary(fit))
    
    GLM.results.TEMP <- data.frame(matrix(NA, ncol = 15, nrow = 0))
    GLM.results.TEMP[1,] = GLM.CON(fit, "AEDB.CEA", PROTEIN, TRAIT, verbose = TRUE)
    GLM.results = rbind(GLM.results, GLM.results.TEMP)
  }
}

Analysis of MCP1_pg_ml_2015_rank.

- processing IL2_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Age + Gender + ORdate_year + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + stenose, 
    data = currentDF)

Coefficients:
             (Intercept)                       Age                Gendermale               ORdate_year     SmokerStatusEx-smoker  
              392.542541                  0.009152                  0.248164                 -0.196726                 -0.242509  
SmokerStatusNever smoked         Med.Statin.LLDyes   Med.all.antiplateletyes             stenose50-70%             stenose70-90%  
                0.095364                 -0.178209                 -0.310615                  0.561873                  1.110132  
           stenose90-99%   stenose100% (Occlusion)  
                0.934465                 -0.114191  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.86123 -0.57366 -0.03745  0.44256  2.66670 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)                4.030e+02  1.121e+02   3.594 0.000381 ***
currentDF[, TRAIT]        -6.417e-02  5.303e-02  -1.210 0.227275    
Age                        8.901e-03  6.581e-03   1.353 0.177186    
Gendermale                 2.308e-01  1.140e-01   2.026 0.043711 *  
ORdate_year               -2.020e-01  5.595e-02  -3.611 0.000358 ***
Hypertension.compositeyes -9.689e-02  1.563e-01  -0.620 0.535919    
DiabetesStatusDiabetes     6.399e-02  1.311e-01   0.488 0.625777    
SmokerStatusEx-smoker     -2.236e-01  1.163e-01  -1.923 0.055473 .  
SmokerStatusNever smoked   1.378e-01  1.836e-01   0.750 0.453757    
Med.Statin.LLDyes         -2.047e-01  1.163e-01  -1.760 0.079430 .  
Med.all.antiplateletyes   -3.047e-01  1.923e-01  -1.585 0.114035    
GFR_MDRD                   1.495e-03  2.969e-03   0.504 0.614915    
BMI                        2.149e-04  1.562e-02   0.014 0.989033    
MedHx_CVDyes               1.169e-01  1.084e-01   1.078 0.281703    
stenose50-70%              6.412e-01  9.428e-01   0.680 0.496954    
stenose70-90%              1.221e+00  9.000e-01   1.357 0.175799    
stenose90-99%              1.045e+00  8.985e-01   1.163 0.245840    
stenose100% (Occlusion)    9.608e-03  1.061e+00   0.009 0.992780    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8844 on 295 degrees of freedom
Multiple R-squared:  0.1323,    Adjusted R-squared:  0.08225 
F-statistic: 2.645 on 17 and 295 DF,  p-value: 0.0004977

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' IL2_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: IL2_rank 
Effect size...............: -0.064168 
Standard error............: 0.053034 
Odds ratio (effect size)..: 0.938 
Lower 95% CI..............: 0.845 
Upper 95% CI..............: 1.041 
T-value...................: -1.209928 
P-value...................: 0.227275 
R^2.......................: 0.132252 
Adjusted r^2..............: 0.082247 
Sample size of AE DB......: 2423 
Sample size of model......: 313 
Missing data %............: 87.08213 

- processing IL4_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + SmokerStatus + Med.Statin.LLD, data = currentDF)

Coefficients:
             (Intercept)        currentDF[, TRAIT]                       Age                Gendermale               ORdate_year  
              514.570221                 -0.090736                  0.008686                  0.204460                 -0.257261  
   SmokerStatusEx-smoker  SmokerStatusNever smoked         Med.Statin.LLDyes  
               -0.230470                  0.023567                 -0.192415  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.82607 -0.59893 -0.05389  0.47017  2.60324 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               488.844886 120.495720   4.057 6.51e-05 ***
currentDF[, TRAIT]         -0.090320   0.055013  -1.642   0.1018    
Age                         0.007596   0.006748   1.126   0.2613    
Gendermale                  0.198266   0.118568   1.672   0.0956 .  
ORdate_year                -0.244476   0.060152  -4.064 6.32e-05 ***
Hypertension.compositeyes  -0.091807   0.162354  -0.565   0.5722    
DiabetesStatusDiabetes      0.074527   0.133376   0.559   0.5768    
SmokerStatusEx-smoker      -0.224830   0.117208  -1.918   0.0561 .  
SmokerStatusNever smoked    0.088341   0.192119   0.460   0.6460    
Med.Statin.LLDyes          -0.216649   0.120270  -1.801   0.0728 .  
Med.all.antiplateletyes    -0.234374   0.200363  -1.170   0.2431    
GFR_MDRD                    0.000623   0.003205   0.194   0.8460    
BMI                        -0.002501   0.015895  -0.157   0.8751    
MedHx_CVDyes                0.124152   0.111365   1.115   0.2659    
stenose70-90%               0.508215   0.299639   1.696   0.0910 .  
stenose90-99%               0.414293   0.293921   1.410   0.1598    
stenose100% (Occlusion)    -0.569273   0.615725  -0.925   0.3560    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8698 on 271 degrees of freedom
Multiple R-squared:  0.1381,    Adjusted R-squared:  0.08721 
F-statistic: 2.714 on 16 and 271 DF,  p-value: 0.000502

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' IL4_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: IL4_rank 
Effect size...............: -0.09032 
Standard error............: 0.055013 
Odds ratio (effect size)..: 0.914 
Lower 95% CI..............: 0.82 
Upper 95% CI..............: 1.018 
T-value...................: -1.641809 
P-value...................: 0.1017895 
R^2.......................: 0.138099 
Adjusted r^2..............: 0.087212 
Sample size of AE DB......: 2423 
Sample size of model......: 288 
Missing data %............: 88.11391 

- processing IL5_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Gender + ORdate_year + Med.Statin.LLD + 
    MedHx_CVD + stenose, data = currentDF)

Coefficients:
            (Intercept)               Gendermale              ORdate_year        Med.Statin.LLDyes             MedHx_CVDyes  
               454.8284                   0.2136                  -0.2275                  -0.2701                   0.1515  
          stenose70-90%            stenose90-99%  stenose100% (Occlusion)  
                 0.5440                   0.4301                  -0.2911  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.8321 -0.5718 -0.0281  0.4503  2.4860 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)                4.794e+02  1.132e+02   4.235 3.07e-05 ***
currentDF[, TRAIT]        -5.024e-02  5.133e-02  -0.979   0.3285    
Age                        8.383e-03  6.514e-03   1.287   0.1991    
Gendermale                 2.335e-01  1.122e-01   2.082   0.0382 *  
ORdate_year               -2.398e-01  5.651e-02  -4.244 2.96e-05 ***
Hypertension.compositeyes -1.436e-01  1.526e-01  -0.941   0.3475    
DiabetesStatusDiabetes    -2.590e-03  1.303e-01  -0.020   0.9842    
SmokerStatusEx-smoker     -2.053e-01  1.132e-01  -1.814   0.0708 .  
SmokerStatusNever smoked   7.838e-02  1.877e-01   0.418   0.6766    
Med.Statin.LLDyes         -2.196e-01  1.142e-01  -1.923   0.0555 .  
Med.all.antiplateletyes   -2.461e-01  1.943e-01  -1.267   0.2063    
GFR_MDRD                   6.336e-04  2.979e-03   0.213   0.8317    
BMI                        3.290e-03  1.498e-02   0.220   0.8263    
MedHx_CVDyes               1.430e-01  1.062e-01   1.347   0.1790    
stenose70-90%              4.690e-01  2.921e-01   1.606   0.1094    
stenose90-99%              3.491e-01  2.893e-01   1.207   0.2284    
stenose100% (Occlusion)   -6.651e-01  6.098e-01  -1.091   0.2763    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8636 on 290 degrees of freedom
Multiple R-squared:  0.1351,    Adjusted R-squared:  0.08733 
F-statistic:  2.83 on 16 and 290 DF,  p-value: 0.0002724

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' IL5_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: IL5_rank 
Effect size...............: -0.050244 
Standard error............: 0.051331 
Odds ratio (effect size)..: 0.951 
Lower 95% CI..............: 0.86 
Upper 95% CI..............: 1.052 
T-value...................: -0.97881 
P-value...................: 0.3284897 
R^2.......................: 0.135052 
Adjusted r^2..............: 0.087331 
Sample size of AE DB......: 2423 
Sample size of model......: 307 
Missing data %............: 87.32976 

- processing IL6_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + SmokerStatus + Med.all.antiplatelet + 
    stenose, data = currentDF)

Coefficients:
             (Intercept)        currentDF[, TRAIT]                       Age                Gendermale               ORdate_year  
               536.89076                   0.09124                   0.01430                   0.29158                  -0.26864  
   SmokerStatusEx-smoker  SmokerStatusNever smoked   Med.all.antiplateletyes             stenose50-70%             stenose70-90%  
                -0.29724                   0.00165                  -0.25853                  -0.21202                   0.30343  
           stenose90-99%   stenose100% (Occlusion)  
                 0.13804                  -0.79164  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.56234 -0.56044 -0.05685  0.44205  2.87297 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)                5.149e+02  1.115e+02   4.618 5.76e-06 ***
currentDF[, TRAIT]         8.383e-02  5.097e-02   1.645   0.1010    
Age                        1.232e-02  6.825e-03   1.806   0.0720 .  
Gendermale                 2.905e-01  1.146e-01   2.534   0.0118 *  
ORdate_year               -2.574e-01  5.561e-02  -4.629 5.49e-06 ***
Hypertension.compositeyes -7.928e-02  1.587e-01  -0.499   0.6178    
DiabetesStatusDiabetes     7.003e-02  1.327e-01   0.528   0.5982    
SmokerStatusEx-smoker     -2.770e-01  1.160e-01  -2.388   0.0176 *  
SmokerStatusNever smoked   3.238e-02  1.867e-01   0.173   0.8625    
Med.Statin.LLDyes         -1.651e-01  1.163e-01  -1.419   0.1570    
Med.all.antiplateletyes   -2.393e-01  1.840e-01  -1.301   0.1944    
GFR_MDRD                  -6.664e-04  3.069e-03  -0.217   0.8283    
BMI                       -5.253e-03  1.457e-02  -0.360   0.7188    
MedHx_CVDyes               8.727e-02  1.080e-01   0.808   0.4199    
stenose50-70%             -2.776e-01  6.977e-01  -0.398   0.6910    
stenose70-90%              2.695e-01  6.507e-01   0.414   0.6790    
stenose90-99%              9.198e-02  6.475e-01   0.142   0.8871    
stenose100% (Occlusion)   -8.701e-01  8.633e-01  -1.008   0.3144    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8929 on 298 degrees of freedom
Multiple R-squared:  0.1513,    Adjusted R-squared:  0.1029 
F-statistic: 3.126 on 17 and 298 DF,  p-value: 4.06e-05

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' IL6_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: IL6_rank 
Effect size...............: 0.083834 
Standard error............: 0.050965 
Odds ratio (effect size)..: 1.087 
Lower 95% CI..............: 0.984 
Upper 95% CI..............: 1.202 
T-value...................: 1.644913 
P-value...................: 0.1010421 
R^2.......................: 0.151347 
Adjusted r^2..............: 0.102934 
Sample size of AE DB......: 2423 
Sample size of model......: 316 
Missing data %............: 86.95832 

- processing IL8_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Med.Statin.LLD + GFR_MDRD, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year   Med.Statin.LLDyes            GFR_MDRD  
        630.898226            0.294590            0.249463           -0.314914           -0.172490           -0.004928  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.0692 -0.4832 -0.1142  0.4492  2.8441 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               633.387067 103.960623   6.093 3.54e-09 ***
currentDF[, TRAIT]          0.278350   0.051053   5.452 1.07e-07 ***
Age                         0.001968   0.006444   0.305   0.7603    
Gendermale                  0.298238   0.110575   2.697   0.0074 ** 
ORdate_year                -0.316106   0.051862  -6.095 3.49e-09 ***
Hypertension.compositeyes  -0.089396   0.152294  -0.587   0.5577    
DiabetesStatusDiabetes      0.074380   0.127177   0.585   0.5591    
SmokerStatusEx-smoker      -0.112578   0.109747  -1.026   0.3058    
SmokerStatusNever smoked    0.162170   0.183369   0.884   0.3772    
Med.Statin.LLDyes          -0.183624   0.109619  -1.675   0.0950 .  
Med.all.antiplateletyes    -0.003682   0.176039  -0.021   0.9833    
GFR_MDRD                   -0.004069   0.002787  -1.460   0.1453    
BMI                        -0.011868   0.013765  -0.862   0.3893    
MedHx_CVDyes                0.081132   0.103351   0.785   0.4331    
stenose50-70%              -0.339190   0.664109  -0.511   0.6099    
stenose70-90%               0.156846   0.612840   0.256   0.7982    
stenose90-99%               0.008115   0.610594   0.013   0.9894    
stenose100% (Occlusion)    -0.390377   0.792644  -0.492   0.6227    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8431 on 289 degrees of freedom
Multiple R-squared:  0.2311,    Adjusted R-squared:  0.1859 
F-statistic:  5.11 on 17 and 289 DF,  p-value: 9.142e-10

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' IL8_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: IL8_rank 
Effect size...............: 0.27835 
Standard error............: 0.051053 
Odds ratio (effect size)..: 1.321 
Lower 95% CI..............: 1.195 
Upper 95% CI..............: 1.46 
T-value...................: 5.452229 
P-value...................: 1.067917e-07 
R^2.......................: 0.231112 
Adjusted r^2..............: 0.185884 
Sample size of AE DB......: 2423 
Sample size of model......: 307 
Missing data %............: 87.32976 

- processing IL9_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + DiabetesStatus + Med.Statin.LLD + GFR_MDRD, 
    data = currentDF)

Coefficients:
           (Intercept)      currentDF[, TRAIT]              Gendermale             ORdate_year  DiabetesStatusDiabetes       Med.Statin.LLDyes  
            384.488719                0.093561                0.317187               -0.191987                0.202138               -0.236999  
              GFR_MDRD  
             -0.003788  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.86228 -0.56593 -0.09133  0.44977  2.87992 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)                3.976e+02  9.510e+01   4.181 3.72e-05 ***
currentDF[, TRAIT]         8.820e-02  5.159e-02   1.709  0.08832 .  
Age                       -8.335e-04  6.525e-03  -0.128  0.89844    
Gendermale                 3.226e-01  1.126e-01   2.866  0.00443 ** 
ORdate_year               -1.982e-01  4.745e-02  -4.176 3.80e-05 ***
Hypertension.compositeyes -1.557e-01  1.555e-01  -1.002  0.31720    
DiabetesStatusDiabetes     2.314e-01  1.333e-01   1.736  0.08349 .  
SmokerStatusEx-smoker     -6.849e-02  1.152e-01  -0.595  0.55256    
SmokerStatusNever smoked   7.397e-02  1.718e-01   0.431  0.66704    
Med.Statin.LLDyes         -2.489e-01  1.186e-01  -2.100  0.03652 *  
Med.all.antiplateletyes   -2.231e-01  1.892e-01  -1.179  0.23912    
GFR_MDRD                  -3.231e-03  2.829e-03  -1.142  0.25419    
BMI                       -1.787e-02  1.389e-02  -1.286  0.19920    
MedHx_CVDyes               1.148e-01  1.073e-01   1.069  0.28566    
stenose50-70%             -2.741e-01  7.202e-01  -0.381  0.70378    
stenose70-90%              1.169e-01  6.716e-01   0.174  0.86195    
stenose90-99%              3.895e-02  6.685e-01   0.058  0.95357    
stenose100% (Occlusion)   -8.265e-01  8.305e-01  -0.995  0.32034    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9278 on 328 degrees of freedom
Multiple R-squared:  0.1322,    Adjusted R-squared:  0.08727 
F-statistic:  2.94 on 17 and 328 DF,  p-value: 9.979e-05

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' IL9_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: IL9_rank 
Effect size...............: 0.088196 
Standard error............: 0.051594 
Odds ratio (effect size)..: 1.092 
Lower 95% CI..............: 0.987 
Upper 95% CI..............: 1.208 
T-value...................: 1.709435 
P-value...................: 0.08831622 
R^2.......................: 0.132246 
Adjusted r^2..............: 0.087271 
Sample size of AE DB......: 2423 
Sample size of model......: 346 
Missing data %............: 85.72018 

- processing IL10_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Gender + ORdate_year + SmokerStatus + 
    Med.Statin.LLD + Med.all.antiplatelet + stenose, data = currentDF)

Coefficients:
             (Intercept)                Gendermale               ORdate_year     SmokerStatusEx-smoker  SmokerStatusNever smoked  
                476.6969                    0.3218                   -0.2382                   -0.2260                    0.1043  
       Med.Statin.LLDyes   Med.all.antiplateletyes             stenose70-90%             stenose90-99%   stenose100% (Occlusion)  
                 -0.2430                   -0.3095                    0.4474                    0.3865                   -0.7015  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.74045 -0.60013  0.00664  0.43651  2.50449 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)                4.916e+02  1.294e+02   3.798 0.000182 ***
currentDF[, TRAIT]        -4.521e-02  5.845e-02  -0.773 0.439964    
Age                        6.254e-03  7.019e-03   0.891 0.373785    
Gendermale                 3.129e-01  1.224e-01   2.556 0.011150 *  
ORdate_year               -2.457e-01  6.458e-02  -3.804 0.000177 ***
Hypertension.compositeyes -1.539e-01  1.699e-01  -0.906 0.365744    
DiabetesStatusDiabetes     5.404e-02  1.404e-01   0.385 0.700726    
SmokerStatusEx-smoker     -2.513e-01  1.215e-01  -2.068 0.039665 *  
SmokerStatusNever smoked   1.117e-01  1.984e-01   0.563 0.573674    
Med.Statin.LLDyes         -2.335e-01  1.229e-01  -1.900 0.058569 .  
Med.all.antiplateletyes   -2.998e-01  2.088e-01  -1.435 0.152359    
GFR_MDRD                  -1.148e-03  3.309e-03  -0.347 0.728890    
BMI                        2.322e-04  1.607e-02   0.014 0.988481    
MedHx_CVDyes               6.599e-02  1.178e-01   0.560 0.575865    
stenose70-90%              4.422e-01  3.196e-01   1.384 0.167585    
stenose90-99%              3.663e-01  3.147e-01   1.164 0.245494    
stenose100% (Occlusion)   -7.035e-01  6.363e-01  -1.106 0.269961    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8824 on 258 degrees of freedom
Multiple R-squared:  0.1392,    Adjusted R-squared:  0.08582 
F-statistic: 2.608 on 16 and 258 DF,  p-value: 0.0008597

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' IL10_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: IL10_rank 
Effect size...............: -0.045209 
Standard error............: 0.058451 
Odds ratio (effect size)..: 0.956 
Lower 95% CI..............: 0.852 
Upper 95% CI..............: 1.072 
T-value...................: -0.773451 
P-value...................: 0.4399637 
R^2.......................: 0.139206 
Adjusted r^2..............: 0.085824 
Sample size of AE DB......: 2423 
Sample size of model......: 275 
Missing data %............: 88.65043 

- processing IL12_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Age + Gender + ORdate_year + 
    SmokerStatus, data = currentDF)

Coefficients:
             (Intercept)                       Age                Gendermale               ORdate_year     SmokerStatusEx-smoker  
               532.77260                   0.01229                   0.26064                  -0.26656                  -0.25418  
SmokerStatusNever smoked  
                 0.06294  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.7378 -0.5775 -0.0569  0.4343  2.5812 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)                5.162e+02  1.229e+02   4.198 3.65e-05 ***
currentDF[, TRAIT]        -6.332e-02  5.563e-02  -1.138   0.2561    
Age                        8.586e-03  6.886e-03   1.247   0.2135    
Gendermale                 2.577e-01  1.175e-01   2.194   0.0291 *  
ORdate_year               -2.581e-01  6.135e-02  -4.207 3.53e-05 ***
Hypertension.compositeyes -1.674e-01  1.644e-01  -1.018   0.3097    
DiabetesStatusDiabetes     8.757e-02  1.350e-01   0.648   0.5172    
SmokerStatusEx-smoker     -2.363e-01  1.203e-01  -1.964   0.0506 .  
SmokerStatusNever smoked   1.287e-01  1.867e-01   0.689   0.4913    
Med.Statin.LLDyes         -1.785e-01  1.199e-01  -1.488   0.1379    
Med.all.antiplateletyes   -2.245e-01  2.009e-01  -1.118   0.2647    
GFR_MDRD                  -1.184e-03  3.189e-03  -0.371   0.7107    
BMI                       -1.466e-04  1.592e-02  -0.009   0.9927    
MedHx_CVDyes               7.989e-02  1.126e-01   0.709   0.4788    
stenose70-90%              4.777e-01  2.990e-01   1.598   0.1112    
stenose90-99%              3.531e-01  2.944e-01   1.199   0.2315    
stenose100% (Occlusion)   -6.713e-01  7.179e-01  -0.935   0.3506    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8686 on 270 degrees of freedom
Multiple R-squared:  0.1387,    Adjusted R-squared:  0.08761 
F-statistic: 2.716 on 16 and 270 DF,  p-value: 0.0004971

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' IL12_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: IL12_rank 
Effect size...............: -0.063318 
Standard error............: 0.055632 
Odds ratio (effect size)..: 0.939 
Lower 95% CI..............: 0.842 
Upper 95% CI..............: 1.047 
T-value...................: -1.138172 
P-value...................: 0.2560576 
R^2.......................: 0.138651 
Adjusted r^2..............: 0.087608 
Sample size of AE DB......: 2423 
Sample size of model......: 287 
Missing data %............: 88.15518 

- processing IL13_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Med.Statin.LLD + Med.all.antiplatelet + stenose, 
    data = currentDF)

Coefficients:
            (Intercept)       currentDF[, TRAIT]               Gendermale              ORdate_year        Med.Statin.LLDyes  
              411.04632                  0.10993                  0.25064                 -0.20526                 -0.17670  
Med.all.antiplateletyes            stenose50-70%            stenose70-90%            stenose90-99%  stenose100% (Occlusion)  
               -0.25620                 -0.37642                  0.14323                  0.01004                 -0.77295  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.84779 -0.58825 -0.09605  0.49423  2.90353 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               415.427878  90.309630   4.600 5.79e-06 ***
currentDF[, TRAIT]          0.113108   0.048211   2.346  0.01949 *  
Age                         0.002954   0.005968   0.495  0.62094    
Gendermale                  0.267744   0.102927   2.601  0.00966 ** 
ORdate_year                -0.207271   0.045061  -4.600 5.79e-06 ***
Hypertension.compositeyes  -0.037186   0.139942  -0.266  0.79060    
DiabetesStatusDiabetes      0.123337   0.117763   1.047  0.29562    
SmokerStatusEx-smoker      -0.108876   0.104663  -1.040  0.29889    
SmokerStatusNever smoked    0.023734   0.161413   0.147  0.88318    
Med.Statin.LLDyes          -0.184569   0.108450  -1.702  0.08961 .  
Med.all.antiplateletyes    -0.224056   0.164980  -1.358  0.17525    
GFR_MDRD                   -0.002470   0.002644  -0.934  0.35086    
BMI                        -0.014774   0.012759  -1.158  0.24763    
MedHx_CVDyes                0.077430   0.097591   0.793  0.42804    
stenose50-70%              -0.374935   0.698676  -0.537  0.59184    
stenose70-90%               0.134328   0.657326   0.204  0.83819    
stenose90-99%              -0.015391   0.655487  -0.023  0.98128    
stenose100% (Occlusion)    -0.784723   0.809827  -0.969  0.33317    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.909 on 375 degrees of freedom
Multiple R-squared:  0.1231,    Adjusted R-squared:  0.08333 
F-statistic: 3.096 on 17 and 375 DF,  p-value: 3.899e-05

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' IL13_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: IL13_rank 
Effect size...............: 0.113108 
Standard error............: 0.048211 
Odds ratio (effect size)..: 1.12 
Lower 95% CI..............: 1.019 
Upper 95% CI..............: 1.231 
T-value...................: 2.346125 
P-value...................: 0.01948982 
R^2.......................: 0.123083 
Adjusted r^2..............: 0.083329 
Sample size of AE DB......: 2423 
Sample size of model......: 393 
Missing data %............: 83.78044 

- processing IL21_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Med.Statin.LLD + Med.all.antiplatelet + stenose, 
    data = currentDF)

Coefficients:
            (Intercept)       currentDF[, TRAIT]               Gendermale              ORdate_year        Med.Statin.LLDyes  
             405.182671                 0.104808                 0.244204                -0.202331                -0.179626  
Med.all.antiplateletyes            stenose50-70%            stenose70-90%            stenose90-99%  stenose100% (Occlusion)  
              -0.251704                -0.388887                 0.136948                 0.004196                -0.802007  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.83602 -0.60273 -0.08754  0.48268  2.91794 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               409.015054  90.055759   4.542 7.52e-06 ***
currentDF[, TRAIT]          0.106463   0.048741   2.184   0.0296 *  
Age                         0.002770   0.005937   0.467   0.6411    
Gendermale                  0.260558   0.102780   2.535   0.0116 *  
ORdate_year                -0.204048   0.044933  -4.541 7.54e-06 ***
Hypertension.compositeyes  -0.043645   0.139743  -0.312   0.7550    
DiabetesStatusDiabetes      0.114297   0.117547   0.972   0.3315    
SmokerStatusEx-smoker      -0.102813   0.104408  -0.985   0.3254    
SmokerStatusNever smoked    0.025817   0.161324   0.160   0.8729    
Med.Statin.LLDyes          -0.188168   0.108176  -1.739   0.0828 .  
Med.all.antiplateletyes    -0.220278   0.164886  -1.336   0.1824    
GFR_MDRD                   -0.002499   0.002643  -0.946   0.3449    
BMI                        -0.015318   0.012747  -1.202   0.2302    
MedHx_CVDyes                0.077591   0.097267   0.798   0.4255    
stenose50-70%              -0.388909   0.699121  -0.556   0.5783    
stenose70-90%               0.128290   0.657599   0.195   0.8454    
stenose90-99%              -0.019985   0.655858  -0.030   0.9757    
stenose100% (Occlusion)    -0.820034   0.809930  -1.012   0.3120    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9088 on 376 degrees of freedom
Multiple R-squared:  0.1213,    Adjusted R-squared:  0.0816 
F-statistic: 3.054 on 17 and 376 DF,  p-value: 4.895e-05

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' IL21_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: IL21_rank 
Effect size...............: 0.106463 
Standard error............: 0.048741 
Odds ratio (effect size)..: 1.112 
Lower 95% CI..............: 1.011 
Upper 95% CI..............: 1.224 
T-value...................: 2.184252 
P-value...................: 0.02956092 
R^2.......................: 0.121324 
Adjusted r^2..............: 0.081597 
Sample size of AE DB......: 2423 
Sample size of model......: 394 
Missing data %............: 83.73917 

- processing INFG_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet, 
    data = currentDF)

Coefficients:
             (Intercept)        currentDF[, TRAIT]                Gendermale               ORdate_year     SmokerStatusEx-smoker  
               621.99368                  -0.09008                   0.32069                  -0.31052                  -0.16285  
SmokerStatusNever smoked         Med.Statin.LLDyes   Med.all.antiplateletyes  
                 0.16166                  -0.23576                  -0.26283  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.71445 -0.58797 -0.02635  0.45200  2.75578 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               612.052639 117.722658   5.199 3.80e-07 ***
currentDF[, TRAIT]         -0.080391   0.060445  -1.330  0.18458    
Age                         0.005485   0.006683   0.821  0.41247    
Gendermale                  0.329615   0.116534   2.828  0.00501 ** 
ORdate_year                -0.305579   0.058730  -5.203 3.73e-07 ***
Hypertension.compositeyes  -0.120130   0.160966  -0.746  0.45609    
DiabetesStatusDiabetes      0.089243   0.131354   0.679  0.49742    
SmokerStatusEx-smoker      -0.202089   0.115821  -1.745  0.08208 .  
SmokerStatusNever smoked    0.181199   0.187965   0.964  0.33585    
Med.Statin.LLDyes          -0.239536   0.120075  -1.995  0.04700 *  
Med.all.antiplateletyes    -0.284206   0.183541  -1.548  0.12261    
GFR_MDRD                   -0.001487   0.002996  -0.496  0.61998    
BMI                        -0.008408   0.014307  -0.588  0.55720    
MedHx_CVDyes                0.058302   0.111399   0.523  0.60112    
stenose50-70%              -0.252475   0.707159  -0.357  0.72133    
stenose70-90%               0.173170   0.649749   0.267  0.79003    
stenose90-99%               0.048313   0.645777   0.075  0.94041    
stenose100% (Occlusion)    -1.049197   0.928350  -1.130  0.25934    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8866 on 288 degrees of freedom
Multiple R-squared:  0.163, Adjusted R-squared:  0.1136 
F-statistic:   3.3 on 17 and 288 DF,  p-value: 1.674e-05

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' INFG_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: INFG_rank 
Effect size...............: -0.080391 
Standard error............: 0.060445 
Odds ratio (effect size)..: 0.923 
Lower 95% CI..............: 0.82 
Upper 95% CI..............: 1.039 
T-value...................: -1.329984 
P-value...................: 0.1845759 
R^2.......................: 0.163039 
Adjusted r^2..............: 0.113635 
Sample size of AE DB......: 2423 
Sample size of model......: 306 
Missing data %............: 87.37103 

- processing TNFA_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Gender + ORdate_year + Med.Statin.LLD, 
    data = currentDF)

Coefficients:
      (Intercept)         Gendermale        ORdate_year  Med.Statin.LLDyes  
         556.5560             0.2372            -0.2780            -0.1648  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.7754 -0.5489 -0.0152  0.4509  2.5088 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)                5.433e+02  1.232e+02   4.412 1.50e-05 ***
currentDF[, TRAIT]        -3.268e-02  5.481e-02  -0.596   0.5516    
Age                        7.883e-03  6.839e-03   1.153   0.2501    
Gendermale                 2.726e-01  1.186e-01   2.298   0.0223 *  
ORdate_year               -2.718e-01  6.148e-02  -4.420 1.44e-05 ***
Hypertension.compositeyes -1.085e-01  1.638e-01  -0.662   0.5084    
DiabetesStatusDiabetes    -4.051e-02  1.357e-01  -0.299   0.7655    
SmokerStatusEx-smoker     -1.902e-01  1.203e-01  -1.582   0.1149    
SmokerStatusNever smoked   6.383e-02  1.923e-01   0.332   0.7402    
Med.Statin.LLDyes         -1.618e-01  1.197e-01  -1.352   0.1776    
Med.all.antiplateletyes   -1.498e-01  2.050e-01  -0.730   0.4658    
GFR_MDRD                  -5.336e-04  3.171e-03  -0.168   0.8665    
BMI                        2.839e-03  1.606e-02   0.177   0.8598    
MedHx_CVDyes               8.708e-02  1.144e-01   0.761   0.4472    
stenose70-90%              4.288e-01  2.998e-01   1.430   0.1539    
stenose90-99%              3.476e-01  2.943e-01   1.181   0.2387    
stenose100% (Occlusion)   -5.880e-01  7.201e-01  -0.817   0.4149    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8656 on 262 degrees of freedom
Multiple R-squared:  0.1332,    Adjusted R-squared:  0.08031 
F-statistic: 2.517 on 16 and 262 DF,  p-value: 0.001306

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' TNFA_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: TNFA_rank 
Effect size...............: -0.032677 
Standard error............: 0.05481 
Odds ratio (effect size)..: 0.968 
Lower 95% CI..............: 0.869 
Upper 95% CI..............: 1.078 
T-value...................: -0.596184 
P-value...................: 0.5515672 
R^2.......................: 0.133239 
Adjusted r^2..............: 0.080308 
Sample size of AE DB......: 2423 
Sample size of model......: 279 
Missing data %............: 88.48535 

- processing MIF_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Med.Statin.LLD + Med.all.antiplatelet + stenose, 
    data = currentDF)

Coefficients:
            (Intercept)       currentDF[, TRAIT]               Gendermale              ORdate_year        Med.Statin.LLDyes  
              327.59797                  0.08919                  0.25491                 -0.16366                 -0.18181  
Med.all.antiplateletyes            stenose50-70%            stenose70-90%            stenose90-99%  stenose100% (Occlusion)  
               -0.25784                 -0.27839                  0.23342                  0.09565                 -0.73167  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.73867 -0.57017 -0.07035  0.47988  3.01508 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               338.199890  97.550336   3.467 0.000587 ***
currentDF[, TRAIT]          0.087501   0.053520   1.635 0.102901    
Age                         0.001857   0.005921   0.314 0.753939    
Gendermale                  0.269380   0.102894   2.618 0.009201 ** 
ORdate_year                -0.168710   0.048674  -3.466 0.000589 ***
Hypertension.compositeyes  -0.038802   0.140333  -0.277 0.782315    
DiabetesStatusDiabetes      0.129309   0.118727   1.089 0.276795    
SmokerStatusEx-smoker      -0.070581   0.104977  -0.672 0.501775    
SmokerStatusNever smoked    0.079068   0.160842   0.492 0.623297    
Med.Statin.LLDyes          -0.192336   0.108491  -1.773 0.077065 .  
Med.all.antiplateletyes    -0.229251   0.165815  -1.383 0.167619    
GFR_MDRD                   -0.002235   0.002668  -0.838 0.402740    
BMI                        -0.017199   0.012801  -1.344 0.179884    
MedHx_CVDyes                0.072400   0.097705   0.741 0.459152    
stenose50-70%              -0.308804   0.699305  -0.442 0.659043    
stenose70-90%               0.200661   0.657685   0.305 0.760457    
stenose90-99%               0.051597   0.655860   0.079 0.937337    
stenose100% (Occlusion)    -0.787362   0.811876  -0.970 0.332767    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9113 on 376 degrees of freedom
Multiple R-squared:  0.1165,    Adjusted R-squared:  0.07651 
F-statistic: 2.915 on 17 and 376 DF,  p-value: 0.0001035

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' MIF_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: MIF_rank 
Effect size...............: 0.087501 
Standard error............: 0.05352 
Odds ratio (effect size)..: 1.091 
Lower 95% CI..............: 0.983 
Upper 95% CI..............: 1.212 
T-value...................: 1.634929 
P-value...................: 0.1029007 
R^2.......................: 0.116456 
Adjusted r^2..............: 0.076509 
Sample size of AE DB......: 2423 
Sample size of model......: 394 
Missing data %............: 83.73917 

- processing MCP1_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Med.Statin.LLD + GFR_MDRD, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year   Med.Statin.LLDyes            GFR_MDRD  
        276.033577            0.232392            0.233467           -0.137843           -0.150335           -0.004144  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-3.05653 -0.61057 -0.04983  0.49520  2.92997 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               294.072490  89.527059   3.285  0.00112 ** 
currentDF[, TRAIT]          0.229772   0.045925   5.003 8.71e-07 ***
Age                         0.002554   0.005791   0.441  0.65949    
Gendermale                  0.236517   0.100829   2.346  0.01951 *  
ORdate_year                -0.146876   0.044663  -3.289  0.00110 ** 
Hypertension.compositeyes  -0.014016   0.136176  -0.103  0.91808    
DiabetesStatusDiabetes      0.166272   0.115477   1.440  0.15075    
SmokerStatusEx-smoker      -0.081742   0.101723  -0.804  0.42216    
SmokerStatusNever smoked    0.024922   0.156109   0.160  0.87325    
Med.Statin.LLDyes          -0.162972   0.105611  -1.543  0.12365    
Med.all.antiplateletyes    -0.180003   0.164625  -1.093  0.27492    
GFR_MDRD                   -0.002865   0.002574  -1.113  0.26635    
BMI                        -0.010551   0.012479  -0.845  0.39840    
MedHx_CVDyes                0.057482   0.095203   0.604  0.54635    
stenose50-70%              -0.170783   0.676686  -0.252  0.80089    
stenose70-90%               0.315509   0.635829   0.496  0.62003    
stenose90-99%               0.208862   0.633630   0.330  0.74187    
stenose100% (Occlusion)    -0.388750   0.788899  -0.493  0.62246    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8819 on 372 degrees of freedom
Multiple R-squared:  0.1648,    Adjusted R-squared:  0.1266 
F-statistic: 4.318 on 17 and 372 DF,  p-value: 4.187e-08

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' MCP1_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: MCP1_rank 
Effect size...............: 0.229772 
Standard error............: 0.045925 
Odds ratio (effect size)..: 1.258 
Lower 95% CI..............: 1.15 
Upper 95% CI..............: 1.377 
T-value...................: 5.003229 
P-value...................: 8.711731e-07 
R^2.......................: 0.164813 
Adjusted r^2..............: 0.126645 
Sample size of AE DB......: 2423 
Sample size of model......: 390 
Missing data %............: 83.90425 

- processing MIP1a_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + DiabetesStatus + Med.Statin.LLD, data = currentDF)

Coefficients:
           (Intercept)      currentDF[, TRAIT]              Gendermale             ORdate_year  DiabetesStatusDiabetes       Med.Statin.LLDyes  
              390.8669                  0.1196                  0.2838                 -0.1953                  0.1815                 -0.2409  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.85101 -0.60103 -0.09931  0.46756  2.87469 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)                3.936e+02  9.324e+01   4.221 3.12e-05 ***
currentDF[, TRAIT]         1.233e-01  5.143e-02   2.398  0.01703 *  
Age                        1.084e-04  6.371e-03   0.017  0.98644    
Gendermale                 2.983e-01  1.109e-01   2.691  0.00749 ** 
ORdate_year               -1.962e-01  4.653e-02  -4.217 3.17e-05 ***
Hypertension.compositeyes -1.460e-01  1.499e-01  -0.974  0.33074    
DiabetesStatusDiabetes     1.943e-01  1.267e-01   1.533  0.12620    
SmokerStatusEx-smoker     -1.072e-01  1.123e-01  -0.955  0.34044    
SmokerStatusNever smoked   3.720e-02  1.686e-01   0.221  0.82549    
Med.Statin.LLDyes         -2.502e-01  1.158e-01  -2.160  0.03150 *  
Med.all.antiplateletyes   -1.973e-01  1.841e-01  -1.072  0.28457    
GFR_MDRD                  -2.464e-03  2.747e-03  -0.897  0.37043    
BMI                       -1.472e-02  1.340e-02  -1.099  0.27257    
MedHx_CVDyes               9.074e-02  1.049e-01   0.865  0.38748    
stenose50-70%             -3.553e-01  7.163e-01  -0.496  0.62020    
stenose70-90%              3.845e-02  6.682e-01   0.058  0.95415    
stenose90-99%             -5.637e-02  6.657e-01  -0.085  0.93256    
stenose100% (Occlusion)   -8.718e-01  8.247e-01  -1.057  0.29121    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9209 on 339 degrees of freedom
Multiple R-squared:  0.1316,    Adjusted R-squared:  0.0881 
F-statistic: 3.023 on 17 and 339 DF,  p-value: 6.264e-05

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' MIP1a_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: MIP1a_rank 
Effect size...............: 0.123314 
Standard error............: 0.051427 
Odds ratio (effect size)..: 1.131 
Lower 95% CI..............: 1.023 
Upper 95% CI..............: 1.251 
T-value...................: 2.397858 
P-value...................: 0.0170316 
R^2.......................: 0.131645 
Adjusted r^2..............: 0.088099 
Sample size of AE DB......: 2423 
Sample size of model......: 357 
Missing data %............: 85.2662 

- processing RANTES_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Med.Statin.LLD + GFR_MDRD, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year   Med.Statin.LLDyes            GFR_MDRD  
        305.057176            0.094953            0.262233           -0.152326           -0.181767           -0.004042  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.71821 -0.56090 -0.08476  0.48422  2.96589 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)   
(Intercept)               316.791237  95.783310   3.307  0.00103 **
currentDF[, TRAIT]          0.109248   0.050329   2.171  0.03059 * 
Age                         0.001929   0.005936   0.325  0.74536   
Gendermale                  0.262922   0.104073   2.526  0.01194 * 
ORdate_year                -0.158012   0.047789  -3.306  0.00104 **
Hypertension.compositeyes  -0.110746   0.141509  -0.783  0.43436   
DiabetesStatusDiabetes      0.170591   0.119654   1.426  0.15480   
SmokerStatusEx-smoker      -0.058091   0.104846  -0.554  0.57987   
SmokerStatusNever smoked    0.080405   0.160410   0.501  0.61650   
Med.Statin.LLDyes          -0.199272   0.108726  -1.833  0.06764 . 
Med.all.antiplateletyes    -0.176983   0.169594  -1.044  0.29737   
GFR_MDRD                   -0.003006   0.002650  -1.135  0.25729   
BMI                        -0.017358   0.012826  -1.353  0.17676   
MedHx_CVDyes                0.083674   0.098586   0.849  0.39658   
stenose50-70%              -0.274462   0.698422  -0.393  0.69456   
stenose70-90%               0.197684   0.653277   0.303  0.76236   
stenose90-99%               0.102251   0.650674   0.157  0.87522   
stenose100% (Occlusion)    -0.839014   0.809301  -1.037  0.30055   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9056 on 369 degrees of freedom
Multiple R-squared:  0.1196,    Adjusted R-squared:  0.07904 
F-statistic: 2.949 on 17 and 369 DF,  p-value: 8.759e-05

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' RANTES_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: RANTES_rank 
Effect size...............: 0.109248 
Standard error............: 0.050329 
Odds ratio (effect size)..: 1.115 
Lower 95% CI..............: 1.011 
Upper 95% CI..............: 1.231 
T-value...................: 2.170697 
P-value...................: 0.03059111 
R^2.......................: 0.119599 
Adjusted r^2..............: 0.079039 
Sample size of AE DB......: 2423 
Sample size of model......: 387 
Missing data %............: 84.02806 

- processing MIG_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Gender + ORdate_year + Med.Statin.LLD + 
    Med.all.antiplatelet + stenose, data = currentDF)

Coefficients:
            (Intercept)               Gendermale              ORdate_year        Med.Statin.LLDyes  Med.all.antiplateletyes  
               397.1635                   0.2619                  -0.1984                  -0.1993                  -0.2726  
          stenose50-70%            stenose70-90%            stenose90-99%  stenose100% (Occlusion)  
                -0.2302                   0.2540                   0.1541                  -0.7695  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.83555 -0.57764 -0.07849  0.47187  2.93866 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               433.402151  95.084317   4.558 7.05e-06 ***
currentDF[, TRAIT]          0.057170   0.051539   1.109   0.2680    
Age                         0.001490   0.006128   0.243   0.8080    
Gendermale                  0.267166   0.105118   2.542   0.0114 *  
ORdate_year                -0.216152   0.047444  -4.556 7.12e-06 ***
Hypertension.compositeyes  -0.083627   0.143210  -0.584   0.5596    
DiabetesStatusDiabetes      0.149945   0.121110   1.238   0.2165    
SmokerStatusEx-smoker      -0.088808   0.107050  -0.830   0.4073    
SmokerStatusNever smoked    0.026311   0.166229   0.158   0.8743    
Med.Statin.LLDyes          -0.207232   0.110477  -1.876   0.0615 .  
Med.all.antiplateletyes    -0.251581   0.169125  -1.488   0.1377    
GFR_MDRD                   -0.002510   0.002682  -0.936   0.3500    
BMI                        -0.015311   0.012951  -1.182   0.2379    
MedHx_CVDyes                0.050956   0.100224   0.508   0.6115    
stenose50-70%              -0.332955   0.708961  -0.470   0.6389    
stenose70-90%               0.149226   0.663405   0.225   0.8222    
stenose90-99%               0.036439   0.661283   0.055   0.9561    
stenose100% (Occlusion)    -0.870780   0.818548  -1.064   0.2881    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9165 on 365 degrees of freedom
Multiple R-squared:  0.1144,    Adjusted R-squared:  0.07314 
F-statistic: 2.773 on 17 and 365 DF,  p-value: 0.0002245

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' MIG_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: MIG_rank 
Effect size...............: 0.05717 
Standard error............: 0.051539 
Odds ratio (effect size)..: 1.059 
Lower 95% CI..............: 0.957 
Upper 95% CI..............: 1.171 
T-value...................: 1.109267 
P-value...................: 0.2680453 
R^2.......................: 0.114389 
Adjusted r^2..............: 0.073141 
Sample size of AE DB......: 2423 
Sample size of model......: 383 
Missing data %............: 84.19315 

- processing IP10_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + DiabetesStatus + Med.Statin.LLD + MedHx_CVD, 
    data = currentDF)

Coefficients:
           (Intercept)      currentDF[, TRAIT]              Gendermale             ORdate_year  DiabetesStatusDiabetes       Med.Statin.LLDyes  
              394.1860                  0.1118                  0.2846                 -0.1970                  0.1867                 -0.2111  
          MedHx_CVDyes  
                0.1530  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.80479 -0.55718 -0.07259  0.49249  2.92738 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               392.264600  93.612243   4.190 3.58e-05 ***
currentDF[, TRAIT]          0.114320   0.050694   2.255  0.02478 *  
Age                         0.001696   0.006430   0.264  0.79215    
Gendermale                  0.291645   0.109263   2.669  0.00798 ** 
ORdate_year                -0.195688   0.046707  -4.190 3.58e-05 ***
Hypertension.compositeyes  -0.096244   0.148954  -0.646  0.51864    
DiabetesStatusDiabetes      0.198566   0.127435   1.558  0.12014    
SmokerStatusEx-smoker      -0.092502   0.112632  -0.821  0.41208    
SmokerStatusNever smoked   -0.060865   0.175315  -0.347  0.72868    
Med.Statin.LLDyes          -0.221663   0.114899  -1.929  0.05456 .  
Med.all.antiplateletyes    -0.178895   0.173723  -1.030  0.30387    
GFR_MDRD                   -0.002547   0.002792  -0.912  0.36224    
BMI                        -0.015900   0.013497  -1.178  0.23962    
MedHx_CVDyes                0.150332   0.104125   1.444  0.14975    
stenose50-70%              -0.328698   0.704867  -0.466  0.64129    
stenose70-90%               0.119639   0.660407   0.181  0.85635    
stenose90-99%               0.012923   0.657247   0.020  0.98432    
stenose100% (Occlusion)    -0.687557   0.815708  -0.843  0.39989    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9122 on 332 degrees of freedom
Multiple R-squared:  0.1314,    Adjusted R-squared:  0.08696 
F-statistic: 2.955 on 17 and 332 DF,  p-value: 9.137e-05

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' IP10_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: IP10_rank 
Effect size...............: 0.11432 
Standard error............: 0.050694 
Odds ratio (effect size)..: 1.121 
Lower 95% CI..............: 1.015 
Upper 95% CI..............: 1.238 
T-value...................: 2.255113 
P-value...................: 0.02477717 
R^2.......................: 0.131437 
Adjusted r^2..............: 0.086963 
Sample size of AE DB......: 2423 
Sample size of model......: 350 
Missing data %............: 85.5551 

- processing Eotaxin1_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Med.Statin.LLD + Med.all.antiplatelet + stenose, 
    data = currentDF)

Coefficients:
            (Intercept)       currentDF[, TRAIT]               Gendermale              ORdate_year        Med.Statin.LLDyes  
              414.66554                  0.08220                  0.24220                 -0.20708                 -0.17596  
Med.all.antiplateletyes            stenose50-70%            stenose70-90%            stenose90-99%  stenose100% (Occlusion)  
               -0.24872                 -0.36331                  0.16201                  0.03217                 -0.80655  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.87499 -0.58734 -0.07708  0.44780  2.97087 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               417.498390  90.931970   4.591 6.02e-06 ***
currentDF[, TRAIT]          0.080481   0.050107   1.606   0.1091    
Age                         0.002049   0.005935   0.345   0.7301    
Gendermale                  0.260287   0.103599   2.512   0.0124 *  
ORdate_year                -0.208268   0.045369  -4.591 6.04e-06 ***
Hypertension.compositeyes  -0.050677   0.140089  -0.362   0.7177    
DiabetesStatusDiabetes      0.110263   0.117855   0.936   0.3501    
SmokerStatusEx-smoker      -0.099123   0.104723  -0.947   0.3445    
SmokerStatusNever smoked    0.033779   0.162004   0.209   0.8349    
Med.Statin.LLDyes          -0.185243   0.108516  -1.707   0.0886 .  
Med.all.antiplateletyes    -0.218136   0.165403  -1.319   0.1880    
GFR_MDRD                   -0.002504   0.002653  -0.944   0.3458    
BMI                        -0.015520   0.012784  -1.214   0.2255    
MedHx_CVDyes                0.077145   0.097579   0.791   0.4297    
stenose50-70%              -0.364847   0.701528  -0.520   0.6033    
stenose70-90%               0.154109   0.659930   0.234   0.8155    
stenose90-99%               0.010521   0.658143   0.016   0.9873    
stenose100% (Occlusion)    -0.828383   0.812917  -1.019   0.3088    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9114 on 376 degrees of freedom
Multiple R-squared:  0.1162,    Adjusted R-squared:  0.07628 
F-statistic: 2.909 on 17 and 376 DF,  p-value: 0.0001069

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' Eotaxin1_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: Eotaxin1_rank 
Effect size...............: 0.080481 
Standard error............: 0.050107 
Odds ratio (effect size)..: 1.084 
Lower 95% CI..............: 0.982 
Upper 95% CI..............: 1.196 
T-value...................: 1.606182 
P-value...................: 0.1090734 
R^2.......................: 0.116239 
Adjusted r^2..............: 0.076281 
Sample size of AE DB......: 2423 
Sample size of model......: 394 
Missing data %............: 83.73917 

- processing TARC_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Hypertension.composite + Med.Statin.LLD + GFR_MDRD, 
    data = currentDF)

Coefficients:
              (Intercept)         currentDF[, TRAIT]                 Gendermale                ORdate_year  Hypertension.compositeyes  
               237.723792                   0.128988                   0.237129                  -0.118596                  -0.202177  
        Med.Statin.LLDyes                   GFR_MDRD  
                -0.233406                  -0.004844  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.7881 -0.5603 -0.1068  0.4896  2.7203 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)  
(Intercept)                2.632e+02  1.113e+02   2.364   0.0187 *
currentDF[, TRAIT]         1.240e-01  5.316e-02   2.333   0.0203 *
Age                        1.261e-04  6.320e-03   0.020   0.9841  
Gendermale                 2.380e-01  1.104e-01   2.156   0.0318 *
ORdate_year               -1.310e-01  5.556e-02  -2.358   0.0190 *
Hypertension.compositeyes -2.000e-01  1.487e-01  -1.345   0.1796  
DiabetesStatusDiabetes     1.425e-01  1.279e-01   1.114   0.2662  
SmokerStatusEx-smoker     -3.534e-02  1.133e-01  -0.312   0.7553  
SmokerStatusNever smoked   6.836e-02  1.678e-01   0.408   0.6839  
Med.Statin.LLDyes         -2.679e-01  1.194e-01  -2.243   0.0256 *
Med.all.antiplateletyes   -1.227e-01  1.787e-01  -0.687   0.4928  
GFR_MDRD                  -4.296e-03  2.912e-03  -1.475   0.1412  
BMI                       -2.046e-02  1.398e-02  -1.464   0.1443  
MedHx_CVDyes               3.161e-02  1.064e-01   0.297   0.7667  
stenose50-70%             -3.162e-01  7.028e-01  -0.450   0.6531  
stenose70-90%              1.214e-01  6.552e-01   0.185   0.8531  
stenose90-99%              1.514e-02  6.531e-01   0.023   0.9815  
stenose100% (Occlusion)   -7.670e-01  8.121e-01  -0.945   0.3456  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9061 on 318 degrees of freedom
Multiple R-squared:  0.108, Adjusted R-squared:  0.06026 
F-statistic: 2.264 on 17 and 318 DF,  p-value: 0.00319

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' TARC_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: TARC_rank 
Effect size...............: 0.124034 
Standard error............: 0.053158 
Odds ratio (effect size)..: 1.132 
Lower 95% CI..............: 1.02 
Upper 95% CI..............: 1.256 
T-value...................: 2.333299 
P-value...................: 0.02025553 
R^2.......................: 0.107952 
Adjusted r^2..............: 0.060264 
Sample size of AE DB......: 2423 
Sample size of model......: 336 
Missing data %............: 86.13289 

- processing PARC_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Med.Statin.LLD, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year   Med.Statin.LLDyes  
          312.9352              0.1300              0.2676             -0.1564             -0.1703  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.76275 -0.56777 -0.06522  0.49499  3.06302 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               334.699245  94.671396   3.535 0.000458 ***
currentDF[, TRAIT]          0.109715   0.050424   2.176 0.030190 *  
Age                         0.001597   0.005887   0.271 0.786364    
Gendermale                  0.282247   0.102195   2.762 0.006030 ** 
ORdate_year                -0.167046   0.047225  -3.537 0.000455 ***
Hypertension.compositeyes  -0.022396   0.140390  -0.160 0.873339    
DiabetesStatusDiabetes      0.130251   0.118046   1.103 0.270563    
SmokerStatusEx-smoker      -0.083711   0.104194  -0.803 0.422246    
SmokerStatusNever smoked    0.053518   0.160351   0.334 0.738749    
Med.Statin.LLDyes          -0.191845   0.108187  -1.773 0.076993 .  
Med.all.antiplateletyes    -0.182511   0.165129  -1.105 0.269751    
GFR_MDRD                   -0.002411   0.002645  -0.911 0.362630    
BMI                        -0.015971   0.012744  -1.253 0.210910    
MedHx_CVDyes                0.074556   0.097314   0.766 0.444079    
stenose50-70%              -0.169455   0.698458  -0.243 0.808437    
stenose70-90%               0.300234   0.655380   0.458 0.647140    
stenose90-99%               0.157672   0.652982   0.241 0.809327    
stenose100% (Occlusion)    -0.581800   0.813639  -0.715 0.475017    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9088 on 376 degrees of freedom
Multiple R-squared:  0.1212,    Adjusted R-squared:  0.08151 
F-statistic: 3.051 on 17 and 376 DF,  p-value: 4.959e-05

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' PARC_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: PARC_rank 
Effect size...............: 0.109715 
Standard error............: 0.050424 
Odds ratio (effect size)..: 1.116 
Lower 95% CI..............: 1.011 
Upper 95% CI..............: 1.232 
T-value...................: 2.175832 
P-value...................: 0.03018994 
R^2.......................: 0.12124 
Adjusted r^2..............: 0.081508 
Sample size of AE DB......: 2423 
Sample size of model......: 394 
Missing data %............: 83.73917 

- processing MDC_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + DiabetesStatus + Med.Statin.LLD, data = currentDF)

Coefficients:
           (Intercept)      currentDF[, TRAIT]              Gendermale             ORdate_year  DiabetesStatusDiabetes       Med.Statin.LLDyes  
             348.14977                 0.08718                 0.31526                -0.17399                 0.20694                -0.24560  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.82919 -0.56626 -0.07603  0.44307  2.90328 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               358.629055  99.358952   3.609 0.000354 ***
currentDF[, TRAIT]          0.073564   0.054208   1.357 0.175673    
Age                        -0.001779   0.006266  -0.284 0.776669    
Gendermale                  0.326305   0.110626   2.950 0.003405 ** 
ORdate_year                -0.178688   0.049575  -3.604 0.000360 ***
Hypertension.compositeyes  -0.147400   0.150938  -0.977 0.329491    
DiabetesStatusDiabetes      0.222332   0.128788   1.726 0.085205 .  
SmokerStatusEx-smoker      -0.060232   0.111996  -0.538 0.591069    
SmokerStatusNever smoked    0.074090   0.168858   0.439 0.661109    
Med.Statin.LLDyes          -0.260920   0.115344  -2.262 0.024330 *  
Med.all.antiplateletyes    -0.214591   0.187904  -1.142 0.254257    
GFR_MDRD                   -0.003189   0.002781  -1.147 0.252316    
BMI                        -0.018247   0.013473  -1.354 0.176535    
MedHx_CVDyes                0.109407   0.105124   1.041 0.298741    
stenose50-70%              -0.265247   0.714856  -0.371 0.710834    
stenose70-90%               0.116664   0.666864   0.175 0.861229    
stenose90-99%               0.032181   0.664416   0.048 0.961399    
stenose100% (Occlusion)    -0.846591   0.824170  -1.027 0.305063    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.921 on 336 degrees of freedom
Multiple R-squared:  0.1307,    Adjusted R-squared:  0.08671 
F-statistic: 2.972 on 17 and 336 DF,  p-value: 8.305e-05

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' MDC_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: MDC_rank 
Effect size...............: 0.073564 
Standard error............: 0.054208 
Odds ratio (effect size)..: 1.076 
Lower 95% CI..............: 0.968 
Upper 95% CI..............: 1.197 
T-value...................: 1.357061 
P-value...................: 0.1756727 
R^2.......................: 0.130697 
Adjusted r^2..............: 0.086715 
Sample size of AE DB......: 2423 
Sample size of model......: 354 
Missing data %............: 85.39001 

- processing OPG_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD, 
    data = currentDF)

Coefficients:
            (Intercept)       currentDF[, TRAIT]               Gendermale              ORdate_year        Med.Statin.LLDyes  
             387.557181                 0.176005                 0.228372                -0.193386                -0.155389  
Med.all.antiplateletyes                 GFR_MDRD  
              -0.255899                -0.003847  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.60973 -0.58187 -0.07439  0.49164  2.76577 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               398.165295  89.034156   4.472 1.03e-05 ***
currentDF[, TRAIT]          0.171332   0.045934   3.730 0.000221 ***
Age                         0.002770   0.005859   0.473 0.636586    
Gendermale                  0.249260   0.101988   2.444 0.014985 *  
ORdate_year                -0.198710   0.044423  -4.473 1.02e-05 ***
Hypertension.compositeyes  -0.007183   0.138807  -0.052 0.958757    
DiabetesStatusDiabetes      0.140120   0.116610   1.202 0.230274    
SmokerStatusEx-smoker      -0.117795   0.103470  -1.138 0.255664    
SmokerStatusNever smoked    0.024242   0.159003   0.152 0.878904    
Med.Statin.LLDyes          -0.179756   0.107285  -1.676 0.094669 .  
Med.all.antiplateletyes    -0.250028   0.163436  -1.530 0.126904    
GFR_MDRD                   -0.002801   0.002612  -1.073 0.284179    
BMI                        -0.013525   0.012627  -1.071 0.284821    
MedHx_CVDyes                0.078918   0.096497   0.818 0.413974    
stenose50-70%              -0.242528   0.689611  -0.352 0.725270    
stenose70-90%               0.247590   0.648124   0.382 0.702671    
stenose90-99%               0.103883   0.645828   0.161 0.872296    
stenose100% (Occlusion)    -0.563330   0.802636  -0.702 0.483208    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8992 on 375 degrees of freedom
Multiple R-squared:  0.142, Adjusted R-squared:  0.1031 
F-statistic: 3.652 on 17 and 375 DF,  p-value: 1.799e-06

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' OPG_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: OPG_rank 
Effect size...............: 0.171332 
Standard error............: 0.045934 
Odds ratio (effect size)..: 1.187 
Lower 95% CI..............: 1.085 
Upper 95% CI..............: 1.299 
T-value...................: 3.729993 
P-value...................: 0.0002210852 
R^2.......................: 0.142042 
Adjusted r^2..............: 0.103148 
Sample size of AE DB......: 2423 
Sample size of model......: 393 
Missing data %............: 83.78044 

- processing sICAM1_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Med.Statin.LLD + Med.all.antiplatelet + stenose, 
    data = currentDF)

Coefficients:
            (Intercept)       currentDF[, TRAIT]               Gendermale              ORdate_year        Med.Statin.LLDyes  
              330.96847                  0.13643                  0.26079                 -0.16535                 -0.16932  
Med.all.antiplateletyes            stenose50-70%            stenose70-90%            stenose90-99%  stenose100% (Occlusion)  
               -0.23566                 -0.30981                  0.21930                  0.08342                 -0.66366  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.77943 -0.59964 -0.04075  0.47551  2.95561 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               339.289933  91.849462   3.694 0.000254 ***
currentDF[, TRAIT]          0.138783   0.047865   2.899 0.003957 ** 
Age                         0.003679   0.005926   0.621 0.535045    
Gendermale                  0.273430   0.101774   2.687 0.007538 ** 
ORdate_year                -0.169320   0.045823  -3.695 0.000252 ***
Hypertension.compositeyes  -0.047009   0.139031  -0.338 0.735460    
DiabetesStatusDiabetes      0.133514   0.117326   1.138 0.255855    
SmokerStatusEx-smoker      -0.084940   0.103684  -0.819 0.413184    
SmokerStatusNever smoked    0.037356   0.159790   0.234 0.815280    
Med.Statin.LLDyes          -0.175236   0.107771  -1.626 0.104786    
Med.all.antiplateletyes    -0.204007   0.163981  -1.244 0.214242    
GFR_MDRD                   -0.002214   0.002635  -0.840 0.401198    
BMI                        -0.016811   0.012687  -1.325 0.185943    
MedHx_CVDyes                0.057699   0.097157   0.594 0.552957    
stenose50-70%              -0.334540   0.694012  -0.482 0.630060    
stenose70-90%               0.188147   0.652329   0.288 0.773182    
stenose90-99%               0.039120   0.650224   0.060 0.952057    
stenose100% (Occlusion)    -0.709359   0.805817  -0.880 0.379260    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9045 on 376 degrees of freedom
Multiple R-squared:  0.1296,    Adjusted R-squared:  0.09028 
F-statistic: 3.294 on 17 and 376 DF,  p-value: 1.314e-05

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' sICAM1_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: sICAM1_rank 
Effect size...............: 0.138783 
Standard error............: 0.047865 
Odds ratio (effect size)..: 1.149 
Lower 95% CI..............: 1.046 
Upper 95% CI..............: 1.262 
T-value...................: 2.899477 
P-value...................: 0.003957249 
R^2.......................: 0.129635 
Adjusted r^2..............: 0.090284 
Sample size of AE DB......: 2423 
Sample size of model......: 394 
Missing data %............: 83.73917 

- processing VEGFA_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Med.all.antiplatelet + GFR_MDRD + BMI + stenose, 
    data = currentDF)

Coefficients:
            (Intercept)       currentDF[, TRAIT]               Gendermale              ORdate_year  Med.all.antiplateletyes  
              605.44365                  0.21623                  0.27216                 -0.30240                 -0.27935  
               GFR_MDRD                      BMI            stenose50-70%            stenose70-90%            stenose90-99%  
               -0.00511                 -0.02159                  0.80800                  1.23457                  1.03777  
stenose100% (Occlusion)  
                0.19344  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.6355 -0.5328 -0.1320  0.4369  2.7713 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               603.371833 102.046952   5.913 8.83e-09 ***
currentDF[, TRAIT]          0.204483   0.049258   4.151 4.27e-05 ***
Age                         0.001610   0.006012   0.268   0.7890    
Gendermale                  0.298705   0.104647   2.854   0.0046 ** 
ORdate_year                -0.301318   0.050931  -5.916 8.66e-09 ***
Hypertension.compositeyes  -0.163890   0.145500  -1.126   0.2609    
DiabetesStatusDiabetes     -0.013334   0.117617  -0.113   0.9098    
SmokerStatusEx-smoker      -0.087816   0.105082  -0.836   0.4040    
SmokerStatusNever smoked    0.158093   0.167713   0.943   0.3466    
Med.Statin.LLDyes          -0.072908   0.108889  -0.670   0.5036    
Med.all.antiplateletyes    -0.263286   0.158782  -1.658   0.0983 .  
GFR_MDRD                   -0.005346   0.002544  -2.102   0.0364 *  
BMI                        -0.020340   0.013165  -1.545   0.1233    
MedHx_CVDyes                0.050893   0.099678   0.511   0.6100    
stenose50-70%               0.735314   0.889422   0.827   0.4090    
stenose70-90%               1.178954   0.852140   1.384   0.1675    
stenose90-99%               0.965463   0.850819   1.135   0.2574    
stenose100% (Occlusion)     0.087200   0.959619   0.091   0.9277    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8426 on 312 degrees of freedom
Multiple R-squared:  0.2061,    Adjusted R-squared:  0.1628 
F-statistic: 4.764 on 17 and 312 DF,  p-value: 4.949e-09

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' VEGFA_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: VEGFA_rank 
Effect size...............: 0.204483 
Standard error............: 0.049258 
Odds ratio (effect size)..: 1.227 
Lower 95% CI..............: 1.114 
Upper 95% CI..............: 1.351 
T-value...................: 4.151285 
P-value...................: 4.270246e-05 
R^2.......................: 0.206079 
Adjusted r^2..............: 0.162821 
Sample size of AE DB......: 2423 
Sample size of model......: 330 
Missing data %............: 86.38052 

- processing TGFB_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Gender + ORdate_year + GFR_MDRD, 
    data = currentDF)

Coefficients:
(Intercept)   Gendermale  ORdate_year     GFR_MDRD  
 422.567714     0.245472    -0.211023    -0.004055  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.75331 -0.60293 -0.06849  0.46663  3.03503 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               397.931460  94.466998   4.212 3.19e-05 ***
currentDF[, TRAIT]          0.060049   0.048611   1.235   0.2175    
Age                         0.000681   0.006075   0.112   0.9108    
Gendermale                  0.271881   0.105766   2.571   0.0105 *  
ORdate_year                -0.198487   0.047134  -4.211 3.20e-05 ***
Hypertension.compositeyes  -0.074295   0.142203  -0.522   0.6017    
DiabetesStatusDiabetes      0.108392   0.119629   0.906   0.3655    
SmokerStatusEx-smoker      -0.077703   0.106553  -0.729   0.4663    
SmokerStatusNever smoked    0.143648   0.165490   0.868   0.3860    
Med.Statin.LLDyes          -0.159324   0.110967  -1.436   0.1519    
Med.all.antiplateletyes    -0.189435   0.169337  -1.119   0.2640    
GFR_MDRD                   -0.003119   0.002710  -1.151   0.2506    
BMI                        -0.015967   0.013179  -1.212   0.2265    
MedHx_CVDyes                0.077823   0.099817   0.780   0.4361    
stenose50-70%              -0.325158   0.703195  -0.462   0.6441    
stenose70-90%               0.216771   0.663164   0.327   0.7439    
stenose90-99%               0.091778   0.660753   0.139   0.8896    
stenose100% (Occlusion)    -0.813254   0.819977  -0.992   0.3219    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.919 on 366 degrees of freedom
Multiple R-squared:  0.1153,    Adjusted R-squared:  0.07423 
F-statistic: 2.806 on 17 and 366 DF,  p-value: 0.000188

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' TGFB_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: TGFB_rank 
Effect size...............: 0.060049 
Standard error............: 0.048611 
Odds ratio (effect size)..: 1.062 
Lower 95% CI..............: 0.965 
Upper 95% CI..............: 1.168 
T-value...................: 1.235294 
P-value...................: 0.2175134 
R^2.......................: 0.11532 
Adjusted r^2..............: 0.074228 
Sample size of AE DB......: 2423 
Sample size of model......: 384 
Missing data %............: 84.15188 

- processing MMP2_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Med.Statin.LLD + GFR_MDRD, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year   Med.Statin.LLDyes            GFR_MDRD  
        488.244559            0.075016            0.316277           -0.243790           -0.160502           -0.003945  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.8689 -0.5762 -0.0745  0.4982  3.2666 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)                4.951e+02  9.547e+01   5.186 3.54e-07 ***
currentDF[, TRAIT]         6.707e-02  5.122e-02   1.309  0.19125    
Age                       -8.326e-04  5.900e-03  -0.141  0.88785    
Gendermale                 3.346e-01  1.030e-01   3.250  0.00126 ** 
ORdate_year               -2.469e-01  4.763e-02  -5.185 3.57e-07 ***
Hypertension.compositeyes -4.015e-02  1.437e-01  -0.279  0.78010    
DiabetesStatusDiabetes     5.294e-02  1.166e-01   0.454  0.65017    
SmokerStatusEx-smoker     -8.013e-02  1.043e-01  -0.768  0.44288    
SmokerStatusNever smoked   1.326e-01  1.611e-01   0.823  0.41093    
Med.Statin.LLDyes         -1.705e-01  1.071e-01  -1.592  0.11228    
Med.all.antiplateletyes   -2.210e-01  1.689e-01  -1.309  0.19140    
GFR_MDRD                  -3.499e-03  2.617e-03  -1.337  0.18207    
BMI                       -1.624e-02  1.301e-02  -1.248  0.21285    
MedHx_CVDyes               8.124e-02  9.803e-02   0.829  0.40776    
stenose50-70%             -2.629e-01  6.925e-01  -0.380  0.70438    
stenose70-90%              1.794e-01  6.541e-01   0.274  0.78401    
stenose90-99%              6.799e-02  6.515e-01   0.104  0.91695    
stenose100% (Occlusion)   -8.184e-01  8.078e-01  -1.013  0.31168    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9055 on 371 degrees of freedom
Multiple R-squared:  0.1412,    Adjusted R-squared:  0.1018 
F-statistic: 3.588 on 17 and 371 DF,  p-value: 2.607e-06

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' MMP2_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: MMP2_rank 
Effect size...............: 0.067066 
Standard error............: 0.051224 
Odds ratio (effect size)..: 1.069 
Lower 95% CI..............: 0.967 
Upper 95% CI..............: 1.182 
T-value...................: 1.309275 
P-value...................: 0.1912516 
R^2.......................: 0.141198 
Adjusted r^2..............: 0.101845 
Sample size of AE DB......: 2423 
Sample size of model......: 389 
Missing data %............: 83.94552 

- processing MMP8_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Med.Statin.LLD + BMI + stenose, data = currentDF)

Coefficients:
            (Intercept)       currentDF[, TRAIT]               Gendermale              ORdate_year        Med.Statin.LLDyes  
              518.11414                  0.22361                  0.20944                 -0.25837                 -0.16145  
                    BMI            stenose50-70%            stenose70-90%            stenose90-99%  stenose100% (Occlusion)  
               -0.02197                 -0.68467                 -0.21566                 -0.27056                 -1.16796  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-3.06404 -0.54875 -0.05214  0.45277  3.05284 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               528.162165  92.488230   5.711 2.31e-08 ***
currentDF[, TRAIT]          0.217754   0.048550   4.485 9.73e-06 ***
Age                        -0.001146   0.005728  -0.200   0.8415    
Gendermale                  0.232349   0.102014   2.278   0.0233 *  
ORdate_year                -0.263143   0.046144  -5.703 2.41e-08 ***
Hypertension.compositeyes  -0.101608   0.138007  -0.736   0.4620    
DiabetesStatusDiabetes      0.101299   0.114406   0.885   0.3765    
SmokerStatusEx-smoker      -0.039920   0.101825  -0.392   0.6952    
SmokerStatusNever smoked    0.189772   0.156136   1.215   0.2250    
Med.Statin.LLDyes          -0.156760   0.104590  -1.499   0.1348    
Med.all.antiplateletyes    -0.155969   0.164814  -0.946   0.3446    
GFR_MDRD                   -0.002493   0.002562  -0.973   0.3313    
BMI                        -0.024847   0.012805  -1.940   0.0531 .  
MedHx_CVDyes                0.076311   0.095565   0.799   0.4251    
stenose50-70%              -0.663006   0.680455  -0.974   0.3305    
stenose70-90%              -0.237089   0.644417  -0.368   0.7131    
stenose90-99%              -0.290772   0.640210  -0.454   0.6500    
stenose100% (Occlusion)    -1.290942   0.795104  -1.624   0.1053    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8839 on 371 degrees of freedom
Multiple R-squared:  0.1816,    Adjusted R-squared:  0.1441 
F-statistic: 4.843 on 17 and 371 DF,  p-value: 2.095e-09

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' MMP8_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: MMP8_rank 
Effect size...............: 0.217754 
Standard error............: 0.04855 
Odds ratio (effect size)..: 1.243 
Lower 95% CI..............: 1.13 
Upper 95% CI..............: 1.367 
T-value...................: 4.485114 
P-value...................: 9.730762e-06 
R^2.......................: 0.181604 
Adjusted r^2..............: 0.144104 
Sample size of AE DB......: 2423 
Sample size of model......: 389 
Missing data %............: 83.94552 

- processing MMP9_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Med.Statin.LLD + Med.all.antiplatelet + BMI + 
    stenose, data = currentDF)

Coefficients:
            (Intercept)       currentDF[, TRAIT]               Gendermale              ORdate_year        Med.Statin.LLDyes  
              484.54051                  0.12798                  0.25522                 -0.24170                 -0.16630  
Med.all.antiplateletyes                      BMI            stenose50-70%            stenose70-90%            stenose90-99%  
               -0.23587                 -0.01882                 -0.37517                  0.08306                 -0.01948  
stenose100% (Occlusion)  
               -0.95485  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.92719 -0.56131 -0.06458  0.43887  3.07875 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               485.689729  94.610884   5.134  4.6e-07 ***
currentDF[, TRAIT]          0.119163   0.046927   2.539  0.01151 *  
Age                        -0.001413   0.005830  -0.242  0.80859    
Gendermale                  0.287381   0.102738   2.797  0.00542 ** 
ORdate_year                -0.242140   0.047207  -5.129  4.7e-07 ***
Hypertension.compositeyes  -0.049814   0.140702  -0.354  0.72351    
DiabetesStatusDiabetes      0.074169   0.116263   0.638  0.52391    
SmokerStatusEx-smoker      -0.060501   0.103495  -0.585  0.55919    
SmokerStatusNever smoked    0.147501   0.158853   0.929  0.35373    
Med.Statin.LLDyes          -0.174343   0.106397  -1.639  0.10214    
Med.all.antiplateletyes    -0.207719   0.167400  -1.241  0.21544    
GFR_MDRD                   -0.002866   0.002617  -1.095  0.27418    
BMI                        -0.020951   0.013005  -1.611  0.10803    
MedHx_CVDyes                0.088529   0.097239   0.910  0.36319    
stenose50-70%              -0.322255   0.687739  -0.469  0.63965    
stenose70-90%               0.113538   0.650027   0.175  0.86144    
stenose90-99%              -0.002686   0.647492  -0.004  0.99669    
stenose100% (Occlusion)    -0.905485   0.803171  -1.127  0.26031    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8998 on 371 degrees of freedom
Multiple R-squared:  0.152, Adjusted R-squared:  0.1131 
F-statistic: 3.911 on 17 and 371 DF,  p-value: 4.25e-07

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_pg_ml_2015_rank ' with ' MMP9_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_pg_ml_2015_rank 
Trait/outcome.............: MMP9_rank 
Effect size...............: 0.119163 
Standard error............: 0.046927 
Odds ratio (effect size)..: 1.127 
Lower 95% CI..............: 1.028 
Upper 95% CI..............: 1.235 
T-value...................: 2.539309 
P-value...................: 0.01151472 
R^2.......................: 0.151969 
Adjusted r^2..............: 0.11311 
Sample size of AE DB......: 2423 
Sample size of model......: 389 
Missing data %............: 83.94552 

Analysis of MCP1_rank.

- processing IL2_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
         337.77686            -0.07302             0.22973            -0.16864  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.3564 -0.6994 -0.0096  0.6442  2.3502 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)   
(Intercept)               324.135124 114.029542   2.843  0.00473 **
currentDF[, TRAIT]         -0.091842   0.052701  -1.743  0.08225 . 
Age                        -0.010907   0.006841  -1.594  0.11173   
Gendermale                  0.280439   0.121542   2.307  0.02161 * 
ORdate_year                -0.161011   0.056903  -2.830  0.00493 **
Hypertension.compositeyes  -0.222927   0.155898  -1.430  0.15361   
DiabetesStatusDiabetes     -0.112047   0.138121  -0.811  0.41778   
SmokerStatusEx-smoker       0.057259   0.119725   0.478  0.63276   
SmokerStatusNever smoked    0.369203   0.179991   2.051  0.04098 * 
Med.Statin.LLDyes          -0.168555   0.119333  -1.412  0.15869   
Med.all.antiplateletyes     0.234563   0.205958   1.139  0.25552   
GFR_MDRD                   -0.002512   0.003084  -0.815  0.41586   
BMI                        -0.007833   0.015379  -0.509  0.61084   
MedHx_CVDyes                0.042501   0.110771   0.384  0.70144   
stenose50-70%              -0.622075   0.779274  -0.798  0.42525   
stenose70-90%              -0.509955   0.717059  -0.711  0.47744   
stenose90-99%              -0.556706   0.715558  -0.778  0.43709   
stenose100% (Occlusion)    -0.781108   0.887784  -0.880  0.37954   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9891 on 354 degrees of freedom
Multiple R-squared:  0.06962,   Adjusted R-squared:  0.02494 
F-statistic: 1.558 on 17 and 354 DF,  p-value: 0.073

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' IL2_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: IL2_rank 
Effect size...............: -0.091842 
Standard error............: 0.052701 
Odds ratio (effect size)..: 0.912 
Lower 95% CI..............: 0.823 
Upper 95% CI..............: 1.012 
T-value...................: -1.742702 
P-value...................: 0.08225396 
R^2.......................: 0.069619 
Adjusted r^2..............: 0.02494 
Sample size of AE DB......: 2423 
Sample size of model......: 372 
Missing data %............: 84.64713 

- processing IL4_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Gender + ORdate_year, data = currentDF)

Coefficients:
(Intercept)   Gendermale  ORdate_year  
   391.3396       0.3126      -0.1954  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.3067 -0.7046  0.0354  0.6417  2.5773 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)   
(Intercept)               366.184851 124.633598   2.938  0.00354 **
currentDF[, TRAIT]         -0.050504   0.056698  -0.891  0.37371   
Age                        -0.013894   0.007279  -1.909  0.05715 . 
Gendermale                  0.354830   0.129438   2.741  0.00646 **
ORdate_year                -0.182242   0.062216  -2.929  0.00364 **
Hypertension.compositeyes  -0.112361   0.165304  -0.680  0.49716   
DiabetesStatusDiabetes     -0.118886   0.145318  -0.818  0.41389   
SmokerStatusEx-smoker       0.089026   0.124760   0.714  0.47600   
SmokerStatusNever smoked    0.341531   0.190332   1.794  0.07368 . 
Med.Statin.LLDyes          -0.156028   0.126548  -1.233  0.21848   
Med.all.antiplateletyes     0.158071   0.219711   0.719  0.47238   
GFR_MDRD                   -0.003372   0.003474  -0.971  0.33234   
BMI                        -0.003079   0.016501  -0.187  0.85209   
MedHx_CVDyes                0.061412   0.117000   0.525  0.60002   
stenose50-70%              -0.093615   1.077451  -0.087  0.93082   
stenose70-90%              -0.040576   1.030674  -0.039  0.96862   
stenose90-99%              -0.058983   1.027499  -0.057  0.95426   
stenose100% (Occlusion)    -0.257200   1.161929  -0.221  0.82495   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.001 on 325 degrees of freedom
Multiple R-squared:  0.07236,   Adjusted R-squared:  0.02384 
F-statistic: 1.491 on 17 and 325 DF,  p-value: 0.09541

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' IL4_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: IL4_rank 
Effect size...............: -0.050504 
Standard error............: 0.056698 
Odds ratio (effect size)..: 0.951 
Lower 95% CI..............: 0.851 
Upper 95% CI..............: 1.062 
T-value...................: -0.89077 
P-value...................: 0.3737117 
R^2.......................: 0.072361 
Adjusted r^2..............: 0.023838 
Sample size of AE DB......: 2423 
Sample size of model......: 343 
Missing data %............: 85.844 

- processing IL5_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Med.Statin.LLD, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]                 Age          Gendermale         ORdate_year   Med.Statin.LLDyes  
         348.44629            -0.11317            -0.01065             0.29540            -0.17354            -0.21941  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.5069 -0.7021  0.0220  0.6314  2.2770 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)   
(Intercept)               346.815626 117.537234   2.951  0.00339 **
currentDF[, TRAIT]         -0.116354   0.053150  -2.189  0.02925 * 
Age                        -0.015717   0.006997  -2.246  0.02532 * 
Gendermale                  0.344607   0.121863   2.828  0.00496 **
ORdate_year                -0.172428   0.058668  -2.939  0.00351 **
Hypertension.compositeyes  -0.111181   0.155967  -0.713  0.47642   
DiabetesStatusDiabetes     -0.141743   0.140027  -1.012  0.31213   
SmokerStatusEx-smoker       0.073269   0.119671   0.612  0.54077   
SmokerStatusNever smoked    0.313783   0.185013   1.696  0.09078 . 
Med.Statin.LLDyes          -0.235154   0.120323  -1.954  0.05146 . 
Med.all.antiplateletyes     0.160528   0.211803   0.758  0.44902   
GFR_MDRD                   -0.003817   0.003191  -1.196  0.23245   
BMI                        -0.004306   0.015178  -0.284  0.77683   
MedHx_CVDyes                0.092628   0.111450   0.831  0.40648   
stenose50-70%              -0.046230   1.060366  -0.044  0.96525   
stenose70-90%              -0.051028   1.012527  -0.050  0.95983   
stenose90-99%              -0.077836   1.010546  -0.077  0.93865   
stenose100% (Occlusion)    -0.339590   1.141656  -0.297  0.76630   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9872 on 346 degrees of freedom
Multiple R-squared:  0.08442,   Adjusted R-squared:  0.03944 
F-statistic: 1.877 on 17 and 346 DF,  p-value: 0.01904

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' IL5_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: IL5_rank 
Effect size...............: -0.116354 
Standard error............: 0.05315 
Odds ratio (effect size)..: 0.89 
Lower 95% CI..............: 0.802 
Upper 95% CI..............: 0.988 
T-value...................: -2.189154 
P-value...................: 0.02925333 
R^2.......................: 0.084423 
Adjusted r^2..............: 0.039438 
Sample size of AE DB......: 2423 
Sample size of model......: 364 
Missing data %............: 84.9773 

- processing IL6_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Gender + ORdate_year, data = currentDF)

Coefficients:
(Intercept)   Gendermale  ORdate_year  
   303.5723       0.2429      -0.1516  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.1707 -0.6816 -0.0241  0.6683  2.4450 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)   
(Intercept)               292.598955 112.086171   2.610  0.00942 **
currentDF[, TRAIT]          0.051411   0.051375   1.001  0.31764   
Age                        -0.014239   0.007037  -2.023  0.04375 * 
Gendermale                  0.310939   0.121720   2.555  0.01104 * 
ORdate_year                -0.145267   0.055919  -2.598  0.00976 **
Hypertension.compositeyes  -0.143512   0.156731  -0.916  0.36045   
DiabetesStatusDiabetes     -0.081443   0.137404  -0.593  0.55373   
SmokerStatusEx-smoker       0.098193   0.118217   0.831  0.40673   
SmokerStatusNever smoked    0.387337   0.180654   2.144  0.03269 * 
Med.Statin.LLDyes          -0.156889   0.118637  -1.322  0.18685   
Med.all.antiplateletyes     0.157364   0.191973   0.820  0.41291   
GFR_MDRD                   -0.003912   0.003160  -1.238  0.21647   
BMI                        -0.012374   0.014417  -0.858  0.39130   
MedHx_CVDyes                0.029785   0.109981   0.271  0.78669   
stenose50-70%              -0.238627   0.655442  -0.364  0.71602   
stenose70-90%              -0.088126   0.597638  -0.147  0.88285   
stenose90-99%              -0.162556   0.595502  -0.273  0.78503   
stenose100% (Occlusion)    -0.411221   0.797116  -0.516  0.60625   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.001 on 364 degrees of freedom
Multiple R-squared:  0.06287,   Adjusted R-squared:  0.01911 
F-statistic: 1.437 on 17 and 364 DF,  p-value: 0.1162

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' IL6_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: IL6_rank 
Effect size...............: 0.051411 
Standard error............: 0.051375 
Odds ratio (effect size)..: 1.053 
Lower 95% CI..............: 0.952 
Upper 95% CI..............: 1.164 
T-value...................: 1.00069 
P-value...................: 0.3176413 
R^2.......................: 0.062873 
Adjusted r^2..............: 0.019106 
Sample size of AE DB......: 2423 
Sample size of model......: 382 
Missing data %............: 84.23442 

- processing IL8_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + SmokerStatus + 
    Med.all.antiplatelet + GFR_MDRD + BMI, data = currentDF)

Coefficients:
              (Intercept)         currentDF[, TRAIT]                        Age                 Gendermale                ORdate_year  
               483.713537                   0.324434                  -0.018361                   0.307909                  -0.240502  
Hypertension.compositeyes      SmokerStatusEx-smoker   SmokerStatusNever smoked    Med.all.antiplateletyes                   GFR_MDRD  
                -0.266232                   0.103620                   0.407957                   0.324185                  -0.004823  
                      BMI  
                -0.020470  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.2578 -0.6013 -0.0235  0.5901  2.3891 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               468.385552 104.233897   4.494 9.53e-06 ***
currentDF[, TRAIT]          0.323207   0.051592   6.265 1.10e-09 ***
Age                        -0.018659   0.006544  -2.851  0.00461 ** 
Gendermale                  0.316040   0.113877   2.775  0.00581 ** 
ORdate_year                -0.232817   0.052003  -4.477 1.03e-05 ***
Hypertension.compositeyes  -0.225756   0.148680  -1.518  0.12981    
DiabetesStatusDiabetes     -0.160255   0.129844  -1.234  0.21795    
SmokerStatusEx-smoker       0.106100   0.110630   0.959  0.33819    
SmokerStatusNever smoked    0.427245   0.175653   2.432  0.01550 *  
Med.Statin.LLDyes          -0.099350   0.110753  -0.897  0.37032    
Med.all.antiplateletyes     0.292253   0.175618   1.664  0.09698 .  
GFR_MDRD                   -0.004916   0.002823  -1.741  0.08249 .  
BMI                        -0.018124   0.013438  -1.349  0.17831    
MedHx_CVDyes                0.024877   0.104174   0.239  0.81140    
stenose50-70%              -0.056165   0.616116  -0.091  0.92742    
stenose70-90%               0.029985   0.554347   0.054  0.95689    
stenose90-99%              -0.066973   0.553139  -0.121  0.90370    
stenose100% (Occlusion)    -0.730295   0.726805  -1.005  0.31569    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9299 on 350 degrees of freedom
Multiple R-squared:  0.192, Adjusted R-squared:  0.1528 
F-statistic: 4.893 on 17 and 350 DF,  p-value: 1.81e-09

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' IL8_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: IL8_rank 
Effect size...............: 0.323207 
Standard error............: 0.051592 
Odds ratio (effect size)..: 1.382 
Lower 95% CI..............: 1.249 
Upper 95% CI..............: 1.529 
T-value...................: 6.264673 
P-value...................: 1.09668e-09 
R^2.......................: 0.192008 
Adjusted r^2..............: 0.152763 
Sample size of AE DB......: 2423 
Sample size of model......: 368 
Missing data %............: 84.81222 

- processing IL9_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Med.Statin.LLD, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year   Med.Statin.LLDyes  
          469.1433              0.2651              0.2845             -0.2341             -0.1561  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-1.97853 -0.64237 -0.04494  0.58360  2.41010 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               450.887553  78.695200   5.730 1.90e-08 ***
currentDF[, TRAIT]          0.256934   0.042621   6.028 3.57e-09 ***
Age                        -0.008089   0.005645  -1.433  0.15261    
Gendermale                  0.306162   0.097611   3.137  0.00183 ** 
ORdate_year                -0.224472   0.039276  -5.715 2.05e-08 ***
Hypertension.compositeyes  -0.142938   0.130384  -1.096  0.27357    
DiabetesStatusDiabetes     -0.116201   0.111687  -1.040  0.29873    
SmokerStatusEx-smoker       0.036425   0.097594   0.373  0.70916    
SmokerStatusNever smoked    0.143082   0.141142   1.014  0.31128    
Med.Statin.LLDyes          -0.167205   0.101227  -1.652  0.09931 .  
Med.all.antiplateletyes     0.053742   0.158187   0.340  0.73422    
GFR_MDRD                   -0.001307   0.002394  -0.546  0.58537    
BMI                        -0.009911   0.011498  -0.862  0.38918    
MedHx_CVDyes                0.040135   0.091466   0.439  0.66103    
stenose50-70%              -0.392710   0.574523  -0.684  0.49463    
stenose70-90%              -0.173669   0.530032  -0.328  0.74333    
stenose90-99%              -0.172148   0.528067  -0.326  0.74459    
stenose100% (Occlusion)    -0.930035   0.670103  -1.388  0.16589    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8952 on 430 degrees of freedom
Multiple R-squared:  0.1963,    Adjusted R-squared:  0.1645 
F-statistic: 6.178 on 17 and 430 DF,  p-value: 5.855e-13

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' IL9_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: IL9_rank 
Effect size...............: 0.256934 
Standard error............: 0.042621 
Odds ratio (effect size)..: 1.293 
Lower 95% CI..............: 1.189 
Upper 95% CI..............: 1.406 
T-value...................: 6.028403 
P-value...................: 3.566497e-09 
R^2.......................: 0.196293 
Adjusted r^2..............: 0.164519 
Sample size of AE DB......: 2423 
Sample size of model......: 448 
Missing data %............: 81.51052 

- processing IL10_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Med.Statin.LLD, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]                 Age          Gendermale         ORdate_year   Med.Statin.LLDyes  
         377.35088            -0.13938            -0.01222             0.31984            -0.18793            -0.25406  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.4252 -0.7168 -0.0178  0.6097  2.3442 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)   
(Intercept)               382.837732 133.005231   2.878  0.00428 **
currentDF[, TRAIT]         -0.148079   0.059120  -2.505  0.01277 * 
Age                        -0.018197   0.007506  -2.424  0.01591 * 
Gendermale                  0.381495   0.132668   2.876  0.00432 **
ORdate_year                -0.190096   0.066363  -2.864  0.00446 **
Hypertension.compositeyes  -0.163857   0.174140  -0.941  0.34747   
DiabetesStatusDiabetes     -0.056989   0.150146  -0.380  0.70454   
SmokerStatusEx-smoker       0.062815   0.129141   0.486  0.62702   
SmokerStatusNever smoked    0.343998   0.194722   1.767  0.07829 . 
Med.Statin.LLDyes          -0.270007   0.129064  -2.092  0.03726 * 
Med.all.antiplateletyes     0.085201   0.235966   0.361  0.71829   
GFR_MDRD                   -0.004142   0.003542  -1.169  0.24312   
BMI                        -0.011549   0.016701  -0.692  0.48974   
MedHx_CVDyes                0.045507   0.122897   0.370  0.71142   
stenose50-70%              -0.349383   1.088293  -0.321  0.74840   
stenose70-90%              -0.193352   1.034790  -0.187  0.85190   
stenose90-99%              -0.199793   1.032638  -0.193  0.84671   
stenose100% (Occlusion)    -0.839284   1.225427  -0.685  0.49393   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.003 on 307 degrees of freedom
Multiple R-squared:  0.09275,   Adjusted R-squared:  0.04251 
F-statistic: 1.846 on 17 and 307 DF,  p-value: 0.02231

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' IL10_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: IL10_rank 
Effect size...............: -0.148079 
Standard error............: 0.05912 
Odds ratio (effect size)..: 0.862 
Lower 95% CI..............: 0.768 
Upper 95% CI..............: 0.968 
T-value...................: -2.504723 
P-value...................: 0.01277281 
R^2.......................: 0.09275 
Adjusted r^2..............: 0.042511 
Sample size of AE DB......: 2423 
Sample size of model......: 325 
Missing data %............: 86.58688 

- processing IL12_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Med.Statin.LLD, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]                 Age          Gendermale         ORdate_year   Med.Statin.LLDyes  
        369.441292           -0.125855           -0.009407            0.319861           -0.184087           -0.206542  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.5441 -0.6935 -0.0074  0.6107  2.4391 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)   
(Intercept)               365.217756 125.908830   2.901  0.00398 **
currentDF[, TRAIT]         -0.129343   0.056270  -2.299  0.02216 * 
Age                        -0.014677   0.007287  -2.014  0.04483 * 
Gendermale                  0.380569   0.126539   3.008  0.00284 **
ORdate_year                -0.181562   0.062824  -2.890  0.00411 **
Hypertension.compositeyes  -0.113279   0.165456  -0.685  0.49405   
DiabetesStatusDiabetes     -0.050993   0.142719  -0.357  0.72110   
SmokerStatusEx-smoker       0.029611   0.126046   0.235  0.81441   
SmokerStatusNever smoked    0.325595   0.186266   1.748  0.08141 . 
Med.Statin.LLDyes          -0.217762   0.126329  -1.724  0.08570 . 
Med.all.antiplateletyes     0.175223   0.214845   0.816  0.41534   
GFR_MDRD                   -0.004207   0.003391  -1.241  0.21561   
BMI                        -0.009384   0.016360  -0.574  0.56665   
MedHx_CVDyes                0.065882   0.116576   0.565  0.57237   
stenose50-70%              -0.180538   1.066122  -0.169  0.86563   
stenose70-90%              -0.099681   1.019576  -0.098  0.92218   
stenose90-99%              -0.140547   1.016673  -0.138  0.89013   
stenose100% (Occlusion)    -0.503419   1.179534  -0.427  0.66981   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9904 on 325 degrees of freedom
Multiple R-squared:  0.08593,   Adjusted R-squared:  0.03812 
F-statistic: 1.797 on 17 and 325 DF,  p-value: 0.02731

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' IL12_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: IL12_rank 
Effect size...............: -0.129343 
Standard error............: 0.05627 
Odds ratio (effect size)..: 0.879 
Lower 95% CI..............: 0.787 
Upper 95% CI..............: 0.981 
T-value...................: -2.298604 
P-value...................: 0.02216168 
R^2.......................: 0.085935 
Adjusted r^2..............: 0.038122 
Sample size of AE DB......: 2423 
Sample size of model......: 343 
Missing data %............: 85.844 

- processing IL13_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Hypertension.composite + Med.Statin.LLD, data = currentDF)

Coefficients:
              (Intercept)         currentDF[, TRAIT]                 Gendermale                ORdate_year  Hypertension.compositeyes  
                 481.9463                     0.3897                     0.2204                    -0.2405                    -0.1661  
        Med.Statin.LLDyes  
                  -0.1353  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.6353 -0.6508 -0.0352  0.6057  2.4524 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)                4.810e+02  7.720e+01   6.230 1.02e-09 ***
currentDF[, TRAIT]         3.825e-01  4.102e-02   9.324  < 2e-16 ***
Age                       -2.655e-03  5.378e-03  -0.494   0.6217    
Gendermale                 2.295e-01  9.296e-02   2.468   0.0139 *  
ORdate_year               -2.396e-01  3.853e-02  -6.219 1.09e-09 ***
Hypertension.compositeyes -1.494e-01  1.220e-01  -1.224   0.2214    
DiabetesStatusDiabetes    -6.109e-02  1.038e-01  -0.589   0.5563    
SmokerStatusEx-smoker      1.574e-02  9.221e-02   0.171   0.8645    
SmokerStatusNever smoked   1.052e-01  1.373e-01   0.766   0.4440    
Med.Statin.LLDyes         -1.519e-01  9.556e-02  -1.589   0.1127    
Med.all.antiplateletyes    3.047e-02  1.470e-01   0.207   0.8358    
GFR_MDRD                   4.795e-04  2.297e-03   0.209   0.8347    
BMI                       -1.179e-02  1.097e-02  -1.074   0.2832    
MedHx_CVDyes               2.197e-02  8.629e-02   0.255   0.7991    
stenose50-70%             -4.282e-01  5.707e-01  -0.750   0.4535    
stenose70-90%             -2.634e-01  5.303e-01  -0.497   0.6197    
stenose90-99%             -3.147e-01  5.287e-01  -0.595   0.5520    
stenose100% (Occlusion)   -9.036e-01  6.705e-01  -1.348   0.1784    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8978 on 479 degrees of freedom
Multiple R-squared:  0.2369,    Adjusted R-squared:  0.2098 
F-statistic: 8.748 on 17 and 479 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' IL13_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: IL13_rank 
Effect size...............: 0.382482 
Standard error............: 0.04102 
Odds ratio (effect size)..: 1.466 
Lower 95% CI..............: 1.353 
Upper 95% CI..............: 1.589 
T-value...................: 9.324199 
P-value...................: 4.12287e-19 
R^2.......................: 0.236913 
Adjusted r^2..............: 0.20983 
Sample size of AE DB......: 2423 
Sample size of model......: 497 
Missing data %............: 79.48824 

- processing IL21_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Hypertension.composite, data = currentDF)

Coefficients:
              (Intercept)         currentDF[, TRAIT]                 Gendermale                ORdate_year  Hypertension.compositeyes  
                 471.7857                     0.3464                     0.2211                    -0.2354                    -0.2092  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.5725 -0.6842 -0.0106  0.6285  2.2829 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)                4.536e+02  7.884e+01   5.753 1.56e-08 ***
currentDF[, TRAIT]         3.404e-01  4.205e-02   8.095 4.74e-15 ***
Age                       -4.645e-03  5.483e-03  -0.847   0.3973    
Gendermale                 2.308e-01  9.504e-02   2.428   0.0155 *  
ORdate_year               -2.258e-01  3.934e-02  -5.740 1.68e-08 ***
Hypertension.compositeyes -1.792e-01  1.247e-01  -1.437   0.1514    
DiabetesStatusDiabetes    -7.635e-02  1.061e-01  -0.719   0.4723    
SmokerStatusEx-smoker      2.884e-02  9.419e-02   0.306   0.7596    
SmokerStatusNever smoked   1.377e-01  1.403e-01   0.982   0.3268    
Med.Statin.LLDyes         -1.409e-01  9.767e-02  -1.443   0.1498    
Med.all.antiplateletyes    2.802e-02  1.505e-01   0.186   0.8524    
GFR_MDRD                   3.006e-04  2.350e-03   0.128   0.8983    
BMI                       -1.342e-02  1.123e-02  -1.195   0.2326    
MedHx_CVDyes               3.006e-02  8.811e-02   0.341   0.7332    
stenose50-70%             -4.718e-01  5.840e-01  -0.808   0.4196    
stenose70-90%             -2.817e-01  5.427e-01  -0.519   0.6039    
stenose90-99%             -3.361e-01  5.411e-01  -0.621   0.5348    
stenose100% (Occlusion)   -1.029e+00  6.860e-01  -1.500   0.1342    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9188 on 480 degrees of freedom
Multiple R-squared:  0.2063,    Adjusted R-squared:  0.1782 
F-statistic:  7.34 on 17 and 480 DF,  p-value: 3.891e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' IL21_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: IL21_rank 
Effect size...............: 0.340369 
Standard error............: 0.042046 
Odds ratio (effect size)..: 1.405 
Lower 95% CI..............: 1.294 
Upper 95% CI..............: 1.526 
T-value...................: 8.095211 
P-value...................: 4.740966e-15 
R^2.......................: 0.206317 
Adjusted r^2..............: 0.178208 
Sample size of AE DB......: 2423 
Sample size of model......: 498 
Missing data %............: 79.44697 

- processing INFG_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Gender + ORdate_year, data = currentDF)

Coefficients:
(Intercept)   Gendermale  ORdate_year  
   430.2780       0.3651      -0.2149  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.3229 -0.6695  0.0116  0.6628  2.7270 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               483.732484 119.272545   4.056 6.17e-05 ***
currentDF[, TRAIT]         -0.108540   0.057053  -1.902  0.05794 .  
Age                        -0.012458   0.006953  -1.792  0.07403 .  
Gendermale                  0.369763   0.122970   3.007  0.00283 ** 
ORdate_year                -0.240763   0.059497  -4.047 6.40e-05 ***
Hypertension.compositeyes  -0.021201   0.159718  -0.133  0.89448    
DiabetesStatusDiabetes     -0.039525   0.135510  -0.292  0.77071    
SmokerStatusEx-smoker       0.145721   0.119575   1.219  0.22380    
SmokerStatusNever smoked    0.359357   0.181365   1.981  0.04833 *  
Med.Statin.LLDyes          -0.189488   0.122301  -1.549  0.12220    
Med.all.antiplateletyes     0.108570   0.194470   0.558  0.57701    
GFR_MDRD                   -0.001517   0.003074  -0.493  0.62206    
BMI                        -0.018579   0.014625  -1.270  0.20480    
MedHx_CVDyes                0.071023   0.113512   0.626  0.53193    
stenose50-70%              -0.045968   0.668659  -0.069  0.94523    
stenose70-90%              -0.253970   0.593765  -0.428  0.66911    
stenose90-99%              -0.194770   0.591953  -0.329  0.74233    
stenose100% (Occlusion)    -0.605486   0.835638  -0.725  0.46920    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9935 on 349 degrees of freedom
Multiple R-squared:  0.09256,   Adjusted R-squared:  0.04836 
F-statistic: 2.094 on 17 and 349 DF,  p-value: 0.006979

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' INFG_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: INFG_rank 
Effect size...............: -0.10854 
Standard error............: 0.057053 
Odds ratio (effect size)..: 0.897 
Lower 95% CI..............: 0.802 
Upper 95% CI..............: 1.003 
T-value...................: -1.902428 
P-value...................: 0.05793809 
R^2.......................: 0.092565 
Adjusted r^2..............: 0.048363 
Sample size of AE DB......: 2423 
Sample size of model......: 367 
Missing data %............: 84.85349 

- processing TNFA_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ Age + Gender + ORdate_year + 
    Med.Statin.LLD + Med.all.antiplatelet, data = currentDF)

Coefficients:
            (Intercept)                      Age               Gendermale              ORdate_year        Med.Statin.LLDyes  
             269.319313                -0.009533                 0.294462                -0.134292                -0.179835  
Med.all.antiplateletyes  
               0.348119  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.2611 -0.6760  0.0113  0.6116  2.6236 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)   
(Intercept)               275.964697 125.935591   2.191  0.02915 * 
currentDF[, TRAIT]         -0.002156   0.054993  -0.039  0.96876   
Age                        -0.014792   0.007229  -2.046  0.04156 * 
Gendermale                  0.349140   0.127517   2.738  0.00653 **
ORdate_year                -0.137038   0.062850  -2.180  0.02996 * 
Hypertension.compositeyes  -0.121535   0.166625  -0.729  0.46630   
DiabetesStatusDiabetes     -0.092884   0.144284  -0.644  0.52020   
SmokerStatusEx-smoker       0.053903   0.126442   0.426  0.67017   
SmokerStatusNever smoked    0.407871   0.188700   2.161  0.03140 * 
Med.Statin.LLDyes          -0.199705   0.125586  -1.590  0.11279   
Med.all.antiplateletyes     0.285589   0.224909   1.270  0.20508   
GFR_MDRD                   -0.003156   0.003388  -0.931  0.35238   
BMI                        -0.014823   0.016144  -0.918  0.35921   
MedHx_CVDyes                0.025319   0.119106   0.213  0.83179   
stenose50-70%              -0.197069   1.067862  -0.185  0.85370   
stenose70-90%              -0.069896   1.020871  -0.068  0.94546   
stenose90-99%              -0.130683   1.019824  -0.128  0.89812   
stenose100% (Occlusion)    -0.819097   1.273028  -0.643  0.52041   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9942 on 318 degrees of freedom
Multiple R-squared:  0.07925,   Adjusted R-squared:  0.03003 
F-statistic:  1.61 on 17 and 318 DF,  p-value: 0.06002

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' TNFA_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: TNFA_rank 
Effect size...............: -0.002156 
Standard error............: 0.054993 
Odds ratio (effect size)..: 0.998 
Lower 95% CI..............: 0.896 
Upper 95% CI..............: 1.111 
T-value...................: -0.039197 
P-value...................: 0.9687576 
R^2.......................: 0.079251 
Adjusted r^2..............: 0.030029 
Sample size of AE DB......: 2423 
Sample size of model......: 336 
Missing data %............: 86.13289 

- processing MIF_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Hypertension.composite + SmokerStatus, data = currentDF)

Coefficients:
              (Intercept)         currentDF[, TRAIT]                 Gendermale                ORdate_year  Hypertension.compositeyes  
                164.54415                    0.35958                    0.25142                   -0.08215                   -0.20282  
    SmokerStatusEx-smoker   SmokerStatusNever smoked  
                  0.10913                    0.27908  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.2591 -0.6027 -0.0388  0.6311  2.5878 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               146.080149  87.467299   1.670   0.0955 .  
currentDF[, TRAIT]          0.359164   0.048534   7.400 6.13e-13 ***
Age                        -0.006303   0.005520  -1.142   0.2541    
Gendermale                  0.247108   0.095861   2.578   0.0102 *  
ORdate_year                -0.072430   0.043645  -1.660   0.0977 .  
Hypertension.compositeyes  -0.147063   0.126216  -1.165   0.2445    
DiabetesStatusDiabetes     -0.010037   0.107585  -0.093   0.9257    
SmokerStatusEx-smoker       0.149550   0.095041   1.574   0.1163    
SmokerStatusNever smoked    0.325111   0.140706   2.311   0.0213 *  
Med.Statin.LLDyes          -0.154385   0.098659  -1.565   0.1183    
Med.all.antiplateletyes     0.070551   0.151685   0.465   0.6421    
GFR_MDRD                    0.001645   0.002388   0.689   0.4911    
BMI                        -0.014946   0.011350  -1.317   0.1885    
MedHx_CVDyes                0.020318   0.089007   0.228   0.8195    
stenose50-70%              -0.450650   0.589894  -0.764   0.4453    
stenose70-90%              -0.303103   0.548176  -0.553   0.5806    
stenose90-99%              -0.372707   0.546588  -0.682   0.4956    
stenose100% (Occlusion)    -0.896842   0.693084  -1.294   0.1963    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.928 on 480 degrees of freedom
Multiple R-squared:  0.1903,    Adjusted R-squared:  0.1617 
F-statistic: 6.637 on 17 and 480 DF,  p-value: 2.58e-14

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' MIF_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: MIF_rank 
Effect size...............: 0.359164 
Standard error............: 0.048534 
Odds ratio (effect size)..: 1.432 
Lower 95% CI..............: 1.302 
Upper 95% CI..............: 1.575 
T-value...................: 7.400196 
P-value...................: 6.131325e-13 
R^2.......................: 0.190333 
Adjusted r^2..............: 0.161658 
Sample size of AE DB......: 2423 
Sample size of model......: 498 
Missing data %............: 79.44697 

- processing MCP1_rank
attempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsenseattempting model selection on an essentially perfect fit is nonsense

Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + ORdate_year + 
    SmokerStatus, data = currentDF)

Coefficients:
             (Intercept)        currentDF[, TRAIT]               ORdate_year     SmokerStatusEx-smoker  SmokerStatusNever smoked  
               2.145e-13                 1.000e+00                -1.071e-16                 2.075e-17                 5.602e-16  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
       Min         1Q     Median         3Q        Max 
-1.448e-15 -2.129e-16 -2.790e-17  1.228e-16  3.124e-14 

Coefficients:
                            Estimate Std. Error    t value Pr(>|t|)    
(Intercept)                2.184e-13  1.278e-13  1.709e+00   0.0881 .  
currentDF[, TRAIT]         1.000e+00  6.780e-17  1.475e+16   <2e-16 ***
Age                       -6.041e-18  8.649e-18 -6.980e-01   0.4852    
Gendermale                -1.872e-16  1.512e-16 -1.238e+00   0.2162    
ORdate_year               -1.087e-16  6.376e-17 -1.705e+00   0.0889 .  
Hypertension.compositeyes  3.203e-17  1.979e-16  1.620e-01   0.8715    
DiabetesStatusDiabetes    -8.931e-17  1.682e-16 -5.310e-01   0.5956    
SmokerStatusEx-smoker      7.905e-17  1.487e-16  5.320e-01   0.5953    
SmokerStatusNever smoked   5.675e-16  2.212e-16  2.565e+00   0.0106 *  
Med.Statin.LLDyes          1.874e-16  1.550e-16  1.209e+00   0.2271    
Med.all.antiplateletyes   -2.258e-17  2.376e-16 -9.500e-02   0.9243    
GFR_MDRD                  -5.105e-19  3.720e-18 -1.370e-01   0.8909    
BMI                        8.400e-19  1.780e-17  4.700e-02   0.9624    
MedHx_CVDyes              -1.929e-16  1.396e-16 -1.382e+00   0.1675    
stenose50-70%             -1.894e-16  9.254e-16 -2.050e-01   0.8379    
stenose70-90%             -2.285e-16  8.597e-16 -2.660e-01   0.7905    
stenose90-99%             -1.090e-16  8.570e-16 -1.270e-01   0.8989    
stenose100% (Occlusion)   -3.188e-16  1.089e-15 -2.930e-01   0.7698    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.455e-15 on 480 degrees of freedom
Multiple R-squared:      1, Adjusted R-squared:      1 
F-statistic: 1.419e+31 on 17 and 480 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' MCP1_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: MCP1_rank 
Effect size...............: 1 
Standard error............: 0 
Odds ratio (effect size)..: 2.718 
Lower 95% CI..............: 2.718 
Upper 95% CI..............: 2.718 
T-value...................: 1.474922e+16 
P-value...................: 0 
R^2.......................: 1 
Adjusted r^2..............: 1 
Sample size of AE DB......: 2423 
Sample size of model......: 498 
Missing data %............: 79.44697 

- processing MIP1a_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          515.6169              0.3328              0.2191             -0.2574  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-1.80412 -0.65997 -0.00457  0.55429  2.56164 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)                4.843e+02  7.641e+01   6.338 5.76e-10 ***
currentDF[, TRAIT]         3.256e-01  4.194e-02   7.763 5.86e-14 ***
Age                       -7.143e-03  5.453e-03  -1.310   0.1909    
Gendermale                 2.425e-01  9.497e-02   2.553   0.0110 *  
ORdate_year               -2.411e-01  3.813e-02  -6.322 6.33e-10 ***
Hypertension.compositeyes -1.164e-01  1.248e-01  -0.933   0.3514    
DiabetesStatusDiabetes    -1.092e-01  1.058e-01  -1.032   0.3027    
SmokerStatusEx-smoker     -5.274e-03  9.435e-02  -0.056   0.9554    
SmokerStatusNever smoked   1.313e-01  1.369e-01   0.959   0.3380    
Med.Statin.LLDyes         -1.391e-01  9.780e-02  -1.422   0.1557    
Med.all.antiplateletyes    6.493e-02  1.529e-01   0.425   0.6712    
GFR_MDRD                   6.714e-05  2.306e-03   0.029   0.9768    
BMI                       -1.295e-02  1.101e-02  -1.176   0.2403    
MedHx_CVDyes               2.487e-02  8.835e-02   0.282   0.7784    
stenose50-70%             -5.187e-01  5.616e-01  -0.924   0.3562    
stenose70-90%             -3.000e-01  5.183e-01  -0.579   0.5630    
stenose90-99%             -3.373e-01  5.164e-01  -0.653   0.5139    
stenose100% (Occlusion)   -1.088e+00  6.555e-01  -1.660   0.0975 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.876 on 441 degrees of freedom
Multiple R-squared:  0.2302,    Adjusted R-squared:  0.2005 
F-statistic: 7.756 on 17 and 441 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' MIP1a_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: MIP1a_rank 
Effect size...............: 0.325554 
Standard error............: 0.041939 
Odds ratio (effect size)..: 1.385 
Lower 95% CI..............: 1.276 
Upper 95% CI..............: 1.503 
T-value...................: 7.762627 
P-value...................: 5.85751e-14 
R^2.......................: 0.230177 
Adjusted r^2..............: 0.200501 
Sample size of AE DB......: 2423 
Sample size of model......: 459 
Missing data %............: 81.05654 

- processing RANTES_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Hypertension.composite, data = currentDF)

Coefficients:
              (Intercept)         currentDF[, TRAIT]                 Gendermale                ORdate_year  Hypertension.compositeyes  
                 237.9560                     0.3123                     0.2260                    -0.1187                    -0.2196  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-3.12191 -0.54598 -0.01048  0.59883  2.89938 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)                2.159e+02  8.494e+01   2.542   0.0114 *  
currentDF[, TRAIT]         3.202e-01  4.603e-02   6.957 1.16e-11 ***
Age                       -4.036e-03  5.545e-03  -0.728   0.4671    
Gendermale                 2.294e-01  9.619e-02   2.384   0.0175 *  
ORdate_year               -1.072e-01  4.239e-02  -2.529   0.0118 *  
Hypertension.compositeyes -2.207e-01  1.269e-01  -1.739   0.0828 .  
DiabetesStatusDiabetes     1.837e-02  1.079e-01   0.170   0.8649    
SmokerStatusEx-smoker      1.135e-01  9.498e-02   1.195   0.2328    
SmokerStatusNever smoked   2.227e-01  1.406e-01   1.585   0.1137    
Med.Statin.LLDyes         -1.420e-01  9.904e-02  -1.434   0.1522    
Med.all.antiplateletyes    1.265e-01  1.528e-01   0.828   0.4081    
GFR_MDRD                   3.131e-04  2.368e-03   0.132   0.8949    
BMI                       -2.044e-02  1.139e-02  -1.795   0.0734 .  
MedHx_CVDyes               7.841e-03  8.954e-02   0.088   0.9303    
stenose50-70%             -5.181e-01  5.901e-01  -0.878   0.3805    
stenose70-90%             -3.690e-01  5.462e-01  -0.676   0.4996    
stenose90-99%             -3.060e-01  5.443e-01  -0.562   0.5743    
stenose100% (Occlusion)   -1.248e+00  6.909e-01  -1.806   0.0715 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9243 on 474 degrees of freedom
Multiple R-squared:  0.1866,    Adjusted R-squared:  0.1574 
F-statistic: 6.397 on 17 and 474 DF,  p-value: 1.141e-13

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' RANTES_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: RANTES_rank 
Effect size...............: 0.32018 
Standard error............: 0.046025 
Odds ratio (effect size)..: 1.377 
Lower 95% CI..............: 1.259 
Upper 95% CI..............: 1.507 
T-value...................: 6.956614 
P-value...................: 1.163346e-11 
R^2.......................: 0.186607 
Adjusted r^2..............: 0.157435 
Sample size of AE DB......: 2423 
Sample size of model......: 492 
Missing data %............: 79.69459 

- processing MIG_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Hypertension.composite, data = currentDF)

Coefficients:
              (Intercept)         currentDF[, TRAIT]                 Gendermale                ORdate_year  Hypertension.compositeyes  
                 604.4820                     0.2929                     0.2398                    -0.3016                    -0.2271  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.1964 -0.6651  0.0113  0.6225  2.2889 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)                5.803e+02  8.343e+01   6.956 1.18e-11 ***
currentDF[, TRAIT]         2.846e-01  4.567e-02   6.233 1.02e-09 ***
Age                       -5.768e-03  5.628e-03  -1.025  0.30592    
Gendermale                 2.556e-01  9.713e-02   2.632  0.00878 ** 
ORdate_year               -2.890e-01  4.164e-02  -6.940 1.30e-11 ***
Hypertension.compositeyes -1.989e-01  1.288e-01  -1.545  0.12313    
DiabetesStatusDiabetes    -4.949e-02  1.089e-01  -0.454  0.64974    
SmokerStatusEx-smoker     -2.714e-03  9.658e-02  -0.028  0.97759    
SmokerStatusNever smoked   1.362e-01  1.448e-01   0.941  0.34726    
Med.Statin.LLDyes         -1.385e-01  1.001e-01  -1.384  0.16690    
Med.all.antiplateletyes    1.729e-02  1.545e-01   0.112  0.91095    
GFR_MDRD                   1.248e-04  2.393e-03   0.052  0.95843    
BMI                       -1.447e-02  1.147e-02  -1.261  0.20803    
MedHx_CVDyes               1.115e-02  9.069e-02   0.123  0.90223    
stenose50-70%             -5.050e-01  5.951e-01  -0.849  0.39651    
stenose70-90%             -3.440e-01  5.507e-01  -0.625  0.53253    
stenose90-99%             -3.337e-01  5.488e-01  -0.608  0.54347    
stenose100% (Occlusion)   -1.148e+00  6.963e-01  -1.649  0.09978 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9319 on 470 degrees of freedom
Multiple R-squared:  0.1734,    Adjusted R-squared:  0.1435 
F-statistic: 5.798 on 17 and 470 DF,  p-value: 4.217e-12

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' MIG_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: MIG_rank 
Effect size...............: 0.28463 
Standard error............: 0.045667 
Odds ratio (effect size)..: 1.329 
Lower 95% CI..............: 1.215 
Upper 95% CI..............: 1.454 
T-value...................: 6.232677 
P-value...................: 1.020771e-09 
R^2.......................: 0.173361 
Adjusted r^2..............: 0.143461 
Sample size of AE DB......: 2423 
Sample size of model......: 488 
Missing data %............: 79.85968 

- processing IP10_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Hypertension.composite, data = currentDF)

Coefficients:
              (Intercept)         currentDF[, TRAIT]                 Gendermale                ORdate_year  Hypertension.compositeyes  
                 445.7351                     0.4238                     0.2713                    -0.2224                    -0.1917  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-3.14418 -0.59601 -0.02638  0.55922  2.18631 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               415.469196  76.990690   5.396 1.13e-07 ***
currentDF[, TRAIT]          0.422204   0.042479   9.939  < 2e-16 ***
Age                        -0.005294   0.005530  -0.957  0.33890    
Gendermale                  0.280567   0.093766   2.992  0.00293 ** 
ORdate_year                -0.206761   0.038418  -5.382 1.22e-07 ***
Hypertension.compositeyes  -0.168565   0.124543  -1.353  0.17662    
DiabetesStatusDiabetes     -0.054183   0.106025  -0.511  0.60958    
SmokerStatusEx-smoker      -0.037196   0.095115  -0.391  0.69594    
SmokerStatusNever smoked    0.009232   0.141886   0.065  0.94815    
Med.Statin.LLDyes          -0.134302   0.097608  -1.376  0.16956    
Med.all.antiplateletyes     0.011772   0.147114   0.080  0.93626    
GFR_MDRD                   -0.001411   0.002340  -0.603  0.54677    
BMI                        -0.016033   0.011120  -1.442  0.15009    
MedHx_CVDyes                0.063694   0.087746   0.726  0.46830    
stenose50-70%              -0.347811   0.554132  -0.628  0.53056    
stenose70-90%              -0.270492   0.513172  -0.527  0.59840    
stenose90-99%              -0.184304   0.510928  -0.361  0.71848    
stenose100% (Occlusion)    -0.741191   0.648898  -1.142  0.25400    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8657 on 428 degrees of freedom
Multiple R-squared:  0.2759,    Adjusted R-squared:  0.2472 
F-statistic: 9.594 on 17 and 428 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' IP10_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: IP10_rank 
Effect size...............: 0.422204 
Standard error............: 0.042479 
Odds ratio (effect size)..: 1.525 
Lower 95% CI..............: 1.403 
Upper 95% CI..............: 1.658 
T-value...................: 9.939162 
P-value...................: 4.407968e-21 
R^2.......................: 0.27592 
Adjusted r^2..............: 0.24716 
Sample size of AE DB......: 2423 
Sample size of model......: 446 
Missing data %............: 81.59307 

- processing Eotaxin1_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Hypertension.composite, data = currentDF)

Coefficients:
              (Intercept)         currentDF[, TRAIT]                 Gendermale                ORdate_year  Hypertension.compositeyes  
                 513.0539                     0.3244                     0.2028                    -0.2560                    -0.2241  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.3999 -0.6942 -0.0328  0.6255  2.3917 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)                4.961e+02  8.030e+01   6.178 1.39e-09 ***
currentDF[, TRAIT]         3.182e-01  4.337e-02   7.337 9.40e-13 ***
Age                       -5.803e-03  5.532e-03  -1.049   0.2947    
Gendermale                 2.150e-01  9.642e-02   2.230   0.0262 *  
ORdate_year               -2.470e-01  4.008e-02  -6.164 1.51e-09 ***
Hypertension.compositeyes -1.928e-01  1.261e-01  -1.529   0.1269    
DiabetesStatusDiabetes    -7.730e-02  1.073e-01  -0.720   0.4717    
SmokerStatusEx-smoker      3.090e-02  9.526e-02   0.324   0.7458    
SmokerStatusNever smoked   1.508e-01  1.418e-01   1.063   0.2881    
Med.Statin.LLDyes         -1.261e-01  9.876e-02  -1.276   0.2024    
Med.all.antiplateletyes    2.581e-02  1.523e-01   0.170   0.8655    
GFR_MDRD                   4.791e-04  2.377e-03   0.202   0.8404    
BMI                       -1.345e-02  1.135e-02  -1.185   0.2368    
MedHx_CVDyes               2.438e-02  8.908e-02   0.274   0.7844    
stenose50-70%             -5.016e-01  5.904e-01  -0.850   0.3959    
stenose70-90%             -3.122e-01  5.487e-01  -0.569   0.5697    
stenose90-99%             -3.628e-01  5.470e-01  -0.663   0.5075    
stenose100% (Occlusion)   -1.110e+00  6.936e-01  -1.601   0.1100    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9289 on 480 degrees of freedom
Multiple R-squared:  0.1889,    Adjusted R-squared:  0.1602 
F-statistic: 6.577 on 17 and 480 DF,  p-value: 3.716e-14

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' Eotaxin1_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: Eotaxin1_rank 
Effect size...............: 0.318209 
Standard error............: 0.043371 
Odds ratio (effect size)..: 1.375 
Lower 95% CI..............: 1.263 
Upper 95% CI..............: 1.497 
T-value...................: 7.336843 
P-value...................: 9.395425e-13 
R^2.......................: 0.188917 
Adjusted r^2..............: 0.160192 
Sample size of AE DB......: 2423 
Sample size of model......: 498 
Missing data %............: 79.44697 

- processing TARC_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + ORdate_year + 
    Med.Statin.LLD + BMI, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]         ORdate_year   Med.Statin.LLDyes                 BMI  
         233.20323             0.27498            -0.11604            -0.26376            -0.01879  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.84543 -0.64613 -0.01877  0.63724  2.65495 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)                2.281e+02  9.923e+01   2.298   0.0220 *  
currentDF[, TRAIT]         2.592e-01  4.730e-02   5.480 7.46e-08 ***
Age                       -4.643e-03  5.932e-03  -0.783   0.4343    
Gendermale                 1.255e-01  1.036e-01   1.211   0.2266    
ORdate_year               -1.132e-01  4.954e-02  -2.285   0.0228 *  
Hypertension.compositeyes -1.854e-01  1.382e-01  -1.341   0.1806    
DiabetesStatusDiabetes    -4.917e-02  1.160e-01  -0.424   0.6720    
SmokerStatusEx-smoker      1.822e-02  1.039e-01   0.175   0.8609    
SmokerStatusNever smoked   1.956e-01  1.483e-01   1.319   0.1877    
Med.Statin.LLDyes         -2.696e-01  1.098e-01  -2.456   0.0145 *  
Med.all.antiplateletyes    4.911e-02  1.622e-01   0.303   0.7622    
GFR_MDRD                   9.712e-04  2.639e-03   0.368   0.7131    
BMI                       -2.066e-02  1.251e-02  -1.651   0.0994 .  
MedHx_CVDyes               9.816e-02  9.763e-02   1.005   0.3153    
stenose50-70%             -5.757e-01  5.987e-01  -0.961   0.3369    
stenose70-90%             -3.310e-01  5.520e-01  -0.600   0.5491    
stenose90-99%             -2.886e-01  5.498e-01  -0.525   0.5999    
stenose100% (Occlusion)   -1.009e+00  6.988e-01  -1.444   0.1495    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9313 on 409 degrees of freedom
Multiple R-squared:  0.1491,    Adjusted R-squared:  0.1137 
F-statistic: 4.215 on 17 and 409 DF,  p-value: 6.462e-08

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' TARC_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: TARC_rank 
Effect size...............: 0.259178 
Standard error............: 0.047297 
Odds ratio (effect size)..: 1.296 
Lower 95% CI..............: 1.181 
Upper 95% CI..............: 1.422 
T-value...................: 5.47978 
P-value...................: 7.459196e-08 
R^2.......................: 0.14908 
Adjusted r^2..............: 0.113712 
Sample size of AE DB......: 2423 
Sample size of model......: 427 
Missing data %............: 82.37722 

- processing PARC_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Med.Statin.LLD + Med.all.antiplatelet, 
    data = currentDF)

Coefficients:
            (Intercept)       currentDF[, TRAIT]                      Age               Gendermale              ORdate_year  
             141.838177                 0.443802                -0.006814                 0.294597                -0.070732  
      Med.Statin.LLDyes  Med.all.antiplateletyes  
              -0.135797                 0.275088  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-3.04725 -0.57430 -0.01202  0.62814  2.20609 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               152.088685  80.472825   1.890  0.05937 .  
currentDF[, TRAIT]          0.437723   0.043170  10.140  < 2e-16 ***
Age                        -0.007455   0.005274  -1.414  0.15812    
Gendermale                  0.296610   0.091505   3.241  0.00127 ** 
ORdate_year                -0.075717   0.040148  -1.886  0.05991 .  
Hypertension.compositeyes  -0.131226   0.120874  -1.086  0.27818    
DiabetesStatusDiabetes     -0.023393   0.102830  -0.227  0.82014    
SmokerStatusEx-smoker       0.078039   0.090790   0.860  0.39046    
SmokerStatusNever smoked    0.185541   0.135001   1.374  0.16997    
Med.Statin.LLDyes          -0.134239   0.094499  -1.421  0.15611    
Med.all.antiplateletyes     0.261626   0.145654   1.796  0.07309 .  
GFR_MDRD                    0.001238   0.002278   0.543  0.58708    
BMI                        -0.006185   0.010877  -0.569  0.56985    
MedHx_CVDyes                0.059671   0.085297   0.700  0.48454    
stenose50-70%              -0.106702   0.566388  -0.188  0.85065    
stenose70-90%              -0.103307   0.525362  -0.197  0.84419    
stenose90-99%              -0.122370   0.523727  -0.234  0.81535    
stenose100% (Occlusion)    -0.262180   0.667961  -0.393  0.69486    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.889 on 480 degrees of freedom
Multiple R-squared:  0.2571,    Adjusted R-squared:  0.2308 
F-statistic: 9.771 on 17 and 480 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' PARC_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: PARC_rank 
Effect size...............: 0.437723 
Standard error............: 0.04317 
Odds ratio (effect size)..: 1.549 
Lower 95% CI..............: 1.423 
Upper 95% CI..............: 1.686 
T-value...................: 10.13951 
P-value...................: 5.072202e-22 
R^2.......................: 0.257082 
Adjusted r^2..............: 0.230771 
Sample size of AE DB......: 2423 
Sample size of model......: 498 
Missing data %............: 79.44697 

- processing MDC_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Med.Statin.LLD, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year   Med.Statin.LLDyes  
          278.9982              0.3708              0.2965             -0.1393             -0.1490  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-1.86874 -0.65351 -0.04043  0.53752  3.05362 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)                2.700e+02  8.015e+01   3.369 0.000822 ***
currentDF[, TRAIT]         3.642e-01  4.388e-02   8.298 1.33e-15 ***
Age                       -6.351e-03  5.390e-03  -1.178 0.239320    
Gendermale                 3.220e-01  9.462e-02   3.403 0.000728 ***
ORdate_year               -1.342e-01  4.000e-02  -3.356 0.000859 ***
Hypertension.compositeyes -1.157e-01  1.253e-01  -0.924 0.356229    
DiabetesStatusDiabetes    -7.654e-02  1.069e-01  -0.716 0.474509    
SmokerStatusEx-smoker     -1.696e-03  9.395e-02  -0.018 0.985607    
SmokerStatusNever smoked   1.277e-01  1.365e-01   0.936 0.349882    
Med.Statin.LLDyes         -1.610e-01  9.799e-02  -1.643 0.101044    
Med.all.antiplateletyes    1.145e-01  1.542e-01   0.742 0.458204    
GFR_MDRD                   8.789e-05  2.324e-03   0.038 0.969846    
BMI                       -1.387e-02  1.103e-02  -1.257 0.209372    
MedHx_CVDyes               4.530e-02  8.848e-02   0.512 0.608906    
stenose50-70%             -4.430e-01  5.608e-01  -0.790 0.429997    
stenose70-90%             -2.836e-01  5.175e-01  -0.548 0.584037    
stenose90-99%             -3.073e-01  5.156e-01  -0.596 0.551548    
stenose100% (Occlusion)   -1.014e+00  6.543e-01  -1.550 0.121818    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8744 on 436 degrees of freedom
Multiple R-squared:  0.241, Adjusted R-squared:  0.2114 
F-statistic: 8.141 on 17 and 436 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' MDC_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: MDC_rank 
Effect size...............: 0.364156 
Standard error............: 0.043883 
Odds ratio (effect size)..: 1.439 
Lower 95% CI..............: 1.321 
Upper 95% CI..............: 1.569 
T-value...................: 8.298409 
P-value...................: 1.33225e-15 
R^2.......................: 0.240951 
Adjusted r^2..............: 0.211355 
Sample size of AE DB......: 2423 
Sample size of model......: 454 
Missing data %............: 81.2629 

- processing OPG_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Med.Statin.LLD, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year   Med.Statin.LLDyes  
          433.8263              0.5797              0.1706             -0.2165             -0.1394  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.5141 -0.5106 -0.0590  0.4883  2.5977 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               427.287820  68.049889   6.279 7.65e-10 ***
currentDF[, TRAIT]          0.573425   0.036693  15.628  < 2e-16 ***
Age                        -0.002660   0.004737  -0.562   0.5747    
Gendermale                  0.192328   0.082276   2.338   0.0198 *  
ORdate_year                -0.212989   0.033962  -6.271 8.00e-10 ***
Hypertension.compositeyes  -0.152974   0.107846  -1.418   0.1567    
DiabetesStatusDiabetes     -0.020392   0.091840  -0.222   0.8244    
SmokerStatusEx-smoker      -0.009957   0.081469  -0.122   0.9028    
SmokerStatusNever smoked    0.102581   0.120853   0.849   0.3964    
Med.Statin.LLDyes          -0.146496   0.084536  -1.733   0.0837 .  
Med.all.antiplateletyes     0.007738   0.129892   0.060   0.9525    
GFR_MDRD                   -0.000838   0.002031  -0.413   0.6800    
BMI                        -0.005220   0.009716  -0.537   0.5913    
MedHx_CVDyes                0.066458   0.076394   0.870   0.3848    
stenose50-70%              -0.106846   0.505468  -0.211   0.8327    
stenose70-90%              -0.044287   0.469387  -0.094   0.9249    
stenose90-99%              -0.067123   0.467905  -0.143   0.8860    
stenose100% (Occlusion)    -0.347525   0.594619  -0.584   0.5592    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.7942 on 479 degrees of freedom
Multiple R-squared:  0.4029,    Adjusted R-squared:  0.3817 
F-statistic: 19.01 on 17 and 479 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' OPG_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: OPG_rank 
Effect size...............: 0.573425 
Standard error............: 0.036693 
Odds ratio (effect size)..: 1.774 
Lower 95% CI..............: 1.651 
Upper 95% CI..............: 1.907 
T-value...................: 15.62752 
P-value...................: 8.723821e-45 
R^2.......................: 0.402862 
Adjusted r^2..............: 0.381669 
Sample size of AE DB......: 2423 
Sample size of model......: 497 
Missing data %............: 79.48824 

- processing sICAM1_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    Hypertension.composite + Med.Statin.LLD + Med.all.antiplatelet, 
    data = currentDF)

Coefficients:
              (Intercept)         currentDF[, TRAIT]                 Gendermale  Hypertension.compositeyes          Med.Statin.LLDyes  
                  -0.1133                     0.6670                     0.2354                    -0.1616                    -0.1266  
  Med.all.antiplateletyes  
                   0.1884  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-3.06932 -0.40155  0.04207  0.43059  2.16413 

Coefficients:
                           Estimate Std. Error t value Pr(>|t|)    
(Intercept)               95.840446  66.583223   1.439  0.15069    
currentDF[, TRAIT]         0.660727   0.035931  18.389  < 2e-16 ***
Age                        0.002250   0.004495   0.501  0.61686    
Gendermale                 0.224179   0.077357   2.898  0.00393 ** 
ORdate_year               -0.047658   0.033223  -1.434  0.15209    
Hypertension.compositeyes -0.137379   0.101881  -1.348  0.17816    
DiabetesStatusDiabetes    -0.032830   0.086710  -0.379  0.70514    
SmokerStatusEx-smoker      0.101332   0.076614   1.323  0.18659    
SmokerStatusNever smoked   0.114707   0.114022   1.006  0.31492    
Med.Statin.LLDyes         -0.110854   0.079774  -1.390  0.16530    
Med.all.antiplateletyes    0.177777   0.122479   1.451  0.14730    
GFR_MDRD                   0.001653   0.001921   0.861  0.38994    
BMI                       -0.013696   0.009170  -1.494  0.13596    
MedHx_CVDyes              -0.027234   0.072019  -0.378  0.70549    
stenose50-70%             -0.509971   0.476871  -1.069  0.28542    
stenose70-90%             -0.355522   0.443195  -0.802  0.42285    
stenose90-99%             -0.445780   0.441889  -1.009  0.31358    
stenose100% (Occlusion)   -0.697120   0.560445  -1.244  0.21415    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.7503 on 480 degrees of freedom
Multiple R-squared:  0.4708,    Adjusted R-squared:  0.452 
F-statistic: 25.12 on 17 and 480 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' sICAM1_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: sICAM1_rank 
Effect size...............: 0.660727 
Standard error............: 0.035931 
Odds ratio (effect size)..: 1.936 
Lower 95% CI..............: 1.805 
Upper 95% CI..............: 2.077 
T-value...................: 18.38887 
P-value...................: 1.477764e-57 
R^2.......................: 0.470782 
Adjusted r^2..............: 0.452039 
Sample size of AE DB......: 2423 
Sample size of model......: 498 
Missing data %............: 79.44697 

- processing VEGFA_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Hypertension.composite + SmokerStatus + BMI, 
    data = currentDF)

Coefficients:
              (Intercept)         currentDF[, TRAIT]                 Gendermale                ORdate_year  Hypertension.compositeyes  
                657.95447                    0.32365                    0.21844                   -0.32809                   -0.25562  
    SmokerStatusEx-smoker   SmokerStatusNever smoked                        BMI  
                  0.11063                    0.30379                   -0.01841  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.3008 -0.5935 -0.0500  0.6200  2.4227 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               642.466588  96.040354   6.690 7.88e-11 ***
currentDF[, TRAIT]          0.327490   0.049225   6.653 9.86e-11 ***
Age                        -0.009134   0.006011  -1.520   0.1294    
Gendermale                  0.217328   0.105227   2.065   0.0396 *  
ORdate_year                -0.319786   0.047942  -6.670 8.87e-11 ***
Hypertension.compositeyes  -0.226216   0.138958  -1.628   0.1044    
DiabetesStatusDiabetes     -0.115174   0.117200  -0.983   0.3264    
SmokerStatusEx-smoker       0.157607   0.102508   1.538   0.1250    
SmokerStatusNever smoked    0.371415   0.156137   2.379   0.0179 *  
Med.Statin.LLDyes          -0.088078   0.107177  -0.822   0.4117    
Med.all.antiplateletyes     0.118234   0.155705   0.759   0.4481    
GFR_MDRD                   -0.001184   0.002523  -0.470   0.6389    
BMI                        -0.021248   0.012637  -1.681   0.0935 .  
MedHx_CVDyes                0.126684   0.097007   1.306   0.1924    
stenose50-70%              -0.356141   0.706324  -0.504   0.6144    
stenose70-90%              -0.487268   0.656480  -0.742   0.4584    
stenose90-99%              -0.555999   0.655133  -0.849   0.3966    
stenose100% (Occlusion)    -1.316272   0.776273  -1.696   0.0908 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9092 on 386 degrees of freedom
Multiple R-squared:  0.1997,    Adjusted R-squared:  0.1645 
F-statistic: 5.667 on 17 and 386 DF,  p-value: 1.641e-11

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' VEGFA_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: VEGFA_rank 
Effect size...............: 0.32749 
Standard error............: 0.049225 
Odds ratio (effect size)..: 1.387 
Lower 95% CI..............: 1.26 
Upper 95% CI..............: 1.528 
T-value...................: 6.652972 
P-value...................: 9.858796e-11 
R^2.......................: 0.199723 
Adjusted r^2..............: 0.164478 
Sample size of AE DB......: 2423 
Sample size of model......: 404 
Missing data %............: 83.32645 

- processing TGFB_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year + Hypertension.composite, data = currentDF)

Coefficients:
              (Intercept)         currentDF[, TRAIT]                 Gendermale                ORdate_year  Hypertension.compositeyes  
                 394.9850                     0.1173                     0.3072                    -0.1971                    -0.1996  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.4029 -0.6503 -0.0023  0.6538  2.5270 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)                3.727e+02  8.640e+01   4.314 1.97e-05 ***
currentDF[, TRAIT]         1.151e-01  4.569e-02   2.518  0.01213 *  
Age                       -7.562e-03  5.876e-03  -1.287  0.19879    
Gendermale                 3.330e-01  1.023e-01   3.255  0.00122 ** 
ORdate_year               -1.855e-01  4.312e-02  -4.301 2.08e-05 ***
Hypertension.compositeyes -2.047e-01  1.333e-01  -1.536  0.12529    
DiabetesStatusDiabetes    -7.342e-02  1.152e-01  -0.638  0.52405    
SmokerStatusEx-smoker      9.055e-02  1.010e-01   0.897  0.37036    
SmokerStatusNever smoked   3.343e-01  1.514e-01   2.209  0.02767 *  
Med.Statin.LLDyes         -1.448e-01  1.057e-01  -1.370  0.17140    
Med.all.antiplateletyes    1.293e-01  1.600e-01   0.808  0.41953    
GFR_MDRD                   6.369e-05  2.538e-03   0.025  0.97999    
BMI                       -1.626e-02  1.211e-02  -1.343  0.18005    
MedHx_CVDyes               7.531e-02  9.475e-02   0.795  0.42712    
stenose50-70%             -5.266e-01  6.146e-01  -0.857  0.39202    
stenose70-90%             -2.725e-01  5.712e-01  -0.477  0.63351    
stenose90-99%             -2.543e-01  5.695e-01  -0.446  0.65547    
stenose100% (Occlusion)   -1.070e+00  7.220e-01  -1.481  0.13916    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9661 on 456 degrees of freedom
Multiple R-squared:  0.1171,    Adjusted R-squared:  0.08417 
F-statistic: 3.557 on 17 and 456 DF,  p-value: 2.502e-06

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' TGFB_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: TGFB_rank 
Effect size...............: 0.115068 
Standard error............: 0.045691 
Odds ratio (effect size)..: 1.122 
Lower 95% CI..............: 1.026 
Upper 95% CI..............: 1.227 
T-value...................: 2.518373 
P-value...................: 0.0121311 
R^2.......................: 0.117082 
Adjusted r^2..............: 0.084167 
Sample size of AE DB......: 2423 
Sample size of model......: 474 
Missing data %............: 80.43747 

- processing MMP2_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Gender + 
    ORdate_year, data = currentDF)

Coefficients:
       (Intercept)  currentDF[, TRAIT]          Gendermale         ORdate_year  
          304.4297              0.3750              0.3703             -0.1520  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.4837 -0.5718 -0.0139  0.6128  2.4435 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)                2.849e+02  8.571e+01   3.324 0.000960 ***
currentDF[, TRAIT]         3.568e-01  4.678e-02   7.627 1.39e-13 ***
Age                       -7.665e-03  5.601e-03  -1.369 0.171785    
Gendermale                 3.938e-01  9.732e-02   4.046 6.11e-05 ***
ORdate_year               -1.419e-01  4.277e-02  -3.318 0.000979 ***
Hypertension.compositeyes -9.213e-02  1.296e-01  -0.711 0.477414    
DiabetesStatusDiabetes    -1.266e-02  1.097e-01  -0.115 0.908206    
SmokerStatusEx-smoker      9.316e-03  9.652e-02   0.097 0.923151    
SmokerStatusNever smoked   1.612e-01  1.431e-01   1.126 0.260718    
Med.Statin.LLDyes         -1.025e-01  9.881e-02  -1.038 0.299983    
Med.all.antiplateletyes    1.319e-01  1.559e-01   0.846 0.398008    
GFR_MDRD                  -6.253e-04  2.447e-03  -0.256 0.798406    
BMI                       -1.121e-02  1.171e-02  -0.958 0.338746    
MedHx_CVDyes               2.992e-02  9.069e-02   0.330 0.741621    
stenose50-70%             -2.844e-03  5.902e-01  -0.005 0.996157    
stenose70-90%              9.290e-02  5.475e-01   0.170 0.865339    
stenose90-99%              1.044e-01  5.459e-01   0.191 0.848380    
stenose100% (Occlusion)   -6.307e-01  6.909e-01  -0.913 0.361779    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9222 on 459 degrees of freedom
Multiple R-squared:  0.1955,    Adjusted R-squared:  0.1657 
F-statistic:  6.56 on 17 and 459 DF,  p-value: 4.844e-14

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' MMP2_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: MMP2_rank 
Effect size...............: 0.3568 
Standard error............: 0.046779 
Odds ratio (effect size)..: 1.429 
Lower 95% CI..............: 1.304 
Upper 95% CI..............: 1.566 
T-value...................: 7.627405 
P-value...................: 1.392688e-13 
R^2.......................: 0.195463 
Adjusted r^2..............: 0.165666 
Sample size of AE DB......: 2423 
Sample size of model......: 477 
Missing data %............: 80.31366 

- processing MMP8_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + SmokerStatus + 
    Med.all.antiplatelet + BMI + stenose, data = currentDF)

Coefficients:
              (Intercept)         currentDF[, TRAIT]                        Age                 Gendermale                ORdate_year  
                407.49841                    0.47258                   -0.01079                    0.14007                   -0.20233  
Hypertension.compositeyes      SmokerStatusEx-smoker   SmokerStatusNever smoked    Med.all.antiplateletyes                        BMI  
                 -0.30045                    0.17313                    0.32439                    0.24655                   -0.03177  
            stenose50-70%              stenose70-90%              stenose90-99%    stenose100% (Occlusion)  
                 -0.80804                   -0.68502                   -0.60890                   -1.62204  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-3.06911 -0.54053  0.02395  0.54548  2.68890 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               396.174815  79.386931   4.990 8.57e-07 ***
currentDF[, TRAIT]          0.473215   0.041069  11.522  < 2e-16 ***
Age                        -0.010761   0.005218  -2.062  0.03974 *  
Gendermale                  0.131128   0.092224   1.422  0.15575    
ORdate_year                -0.196685   0.039619  -4.964 9.73e-07 ***
Hypertension.compositeyes  -0.278728   0.119263  -2.337  0.01986 *  
DiabetesStatusDiabetes     -0.024611   0.102482  -0.240  0.81032    
SmokerStatusEx-smoker       0.177017   0.090168   1.963  0.05023 .  
SmokerStatusNever smoked    0.323357   0.132778   2.435  0.01526 *  
Med.Statin.LLDyes          -0.090403   0.092376  -0.979  0.32827    
Med.all.antiplateletyes     0.248239   0.145528   1.706  0.08873 .  
GFR_MDRD                    0.001309   0.002298   0.570  0.56911    
BMI                        -0.031639   0.011018  -2.871  0.00428 ** 
MedHx_CVDyes                0.023068   0.084768   0.272  0.78565    
stenose50-70%              -0.861245   0.549700  -1.567  0.11786    
stenose70-90%              -0.721187   0.512264  -1.408  0.15985    
stenose90-99%              -0.651536   0.509866  -1.278  0.20195    
stenose100% (Occlusion)    -1.677012   0.647752  -2.589  0.00993 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8621 on 459 degrees of freedom
Multiple R-squared:  0.2969,    Adjusted R-squared:  0.2708 
F-statistic:  11.4 on 17 and 459 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' MMP8_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: MMP8_rank 
Effect size...............: 0.473215 
Standard error............: 0.041069 
Odds ratio (effect size)..: 1.605 
Lower 95% CI..............: 1.481 
Upper 95% CI..............: 1.74 
T-value...................: 11.52248 
P-value...................: 3.710762e-27 
R^2.......................: 0.296872 
Adjusted r^2..............: 0.27083 
Sample size of AE DB......: 2423 
Sample size of model......: 477 
Missing data %............: 80.31366 

- processing MMP9_rank


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + SmokerStatus + 
    Med.all.antiplatelet + BMI, data = currentDF)

Coefficients:
              (Intercept)         currentDF[, TRAIT]                        Age                 Gendermale                ORdate_year  
                261.74610                    0.60020                   -0.01143                    0.21359                   -0.13001  
Hypertension.compositeyes      SmokerStatusEx-smoker   SmokerStatusNever smoked    Med.all.antiplateletyes                        BMI  
                 -0.18921                    0.13122                    0.23333                    0.32574                   -0.03044  


Call:
lm(formula = currentDF[, PROTEIN] ~ currentDF[, TRAIT] + Age + 
    Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF)

Residuals:
     Min       1Q   Median       3Q      Max 
-3.07159 -0.47744 -0.02571  0.49342  2.79265 

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)               255.302470  72.052050   3.543 0.000436 ***
currentDF[, TRAIT]          0.602903   0.037128  16.238  < 2e-16 ***
Age                        -0.011154   0.004713  -2.366 0.018380 *  
Gendermale                  0.202433   0.082269   2.461 0.014238 *  
ORdate_year                -0.126662   0.035959  -3.522 0.000471 ***
Hypertension.compositeyes  -0.169317   0.108823  -1.556 0.120423    
DiabetesStatusDiabetes      0.007354   0.092609   0.079 0.936743    
SmokerStatusEx-smoker       0.139631   0.081284   1.718 0.086506 .  
SmokerStatusNever smoked    0.244867   0.120009   2.040 0.041883 *  
Med.Statin.LLDyes          -0.106001   0.083422  -1.271 0.204497    
Med.all.antiplateletyes     0.276223   0.131469   2.101 0.036183 *  
GFR_MDRD                    0.001761   0.002075   0.849 0.396498    
BMI                        -0.033145   0.009935  -3.336 0.000919 ***
MedHx_CVDyes                0.047506   0.076557   0.621 0.535216    
stenose50-70%              -0.296349   0.495684  -0.598 0.550230    
stenose70-90%              -0.238666   0.460977  -0.518 0.604889    
stenose90-99%              -0.260377   0.459383  -0.567 0.571131    
stenose100% (Occlusion)    -1.037848   0.582274  -1.782 0.075346 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.7786 on 458 degrees of freedom
Multiple R-squared:  0.4262,    Adjusted R-squared:  0.4049 
F-statistic: 20.01 on 17 and 458 DF,  p-value: < 2.2e-16

Analyzing in dataset ' AEDB.CEA ' the association of ' MCP1_rank ' with ' MMP9_rank ' .
Collecting data.

We have collected the following and summarize it in an object:
Dataset...................: AEDB.CEA 
Score/Exposure/biomarker..: MCP1_rank 
Trait/outcome.............: MMP9_rank 
Effect size...............: 0.602903 
Standard error............: 0.037128 
Odds ratio (effect size)..: 1.827 
Lower 95% CI..............: 1.699 
Upper 95% CI..............: 1.965 
T-value...................: 16.2383 
P-value...................: 3.674529e-47 
R^2.......................: 0.426227 
Adjusted r^2..............: 0.40493 
Sample size of AE DB......: 2423 
Sample size of model......: 476 
Missing data %............: 80.35493 
cat("Edit the column names...\n")
Edit the column names...
colnames(GLM.results) = c("Dataset", "Predictor", "Trait",
                          "Beta", "s.e.m.",
                          "OR", "low95CI", "up95CI",
                          "T-value", "P-value", "r^2", "r^2_adj", "AE_N", "Model_N", "Perc_Miss")

cat("Correct the variable types...\n")
Correct the variable types...
GLM.results$Beta <- as.numeric(GLM.results$Beta)
GLM.results$s.e.m. <- as.numeric(GLM.results$s.e.m.)
GLM.results$OR <- as.numeric(GLM.results$OR)
GLM.results$low95CI <- as.numeric(GLM.results$low95CI)
GLM.results$up95CI <- as.numeric(GLM.results$up95CI)
GLM.results$`T-value` <- as.numeric(GLM.results$`T-value`)
GLM.results$`P-value` <- as.numeric(GLM.results$`P-value`)
GLM.results$`r^2` <- as.numeric(GLM.results$`r^2`)
GLM.results$`r^2_adj` <- as.numeric(GLM.results$`r^2_adj`)
GLM.results$`AE_N` <- as.numeric(GLM.results$`AE_N`)
GLM.results$`Model_N` <- as.numeric(GLM.results$`Model_N`)
GLM.results$`Perc_Miss` <- as.numeric(GLM.results$`Perc_Miss`)
DT::datatable(GLM.results)

# Save the data
cat("Writing results to Excel-file...\n")
### Univariate
library(openxlsx)
write.xlsx(GLM.results,
           file = paste0(OUT_loc, "/",Today,".AEDB.CEA.Con.Multi.MCP1_Plaque.Cytokines_Plaques.RANK.MODEL2.xlsx"),
           row.names = FALSE, col.names = TRUE, sheetName = "Con.Multi.PlaquePheno")
# Removing intermediates
cat("Removing intermediate files...\n")
rm(TRAIT, trait, currentDF, GLM.results, GLM.results.TEMP, fit, model_step)

MCP1 levels vs. vulnerability index

Here we calculate the plaque instability/vulnerability index and visualize the MCP1 levels in plaque.

# Plaque vulnerability

table(AEDB.CEA$Macrophages.bin)

      no/minor moderate/heavy 
           847            992 
table(AEDB.CEA$Fat.bin_10)

 <10%  >10% 
  542  1316 
table(AEDB.CEA$Collagen.bin)

      no/minor moderate/heavy 
           382           1469 
table(AEDB.CEA$SMC.bin)

      no/minor moderate/heavy 
           602           1244 
table(AEDB.CEA$IPH.bin)

  no  yes 
 746 1108 
# SPSS code

# 
# *** syntax- Plaque vulnerability**.
# COMPUTE Macro_instab = -999.
# IF macrophages.bin=2 Macro_instab=1.
# IF macrophages.bin=1 Macro_instab=0.
# EXECUTE.
# 
# COMPUTE Fat10_instab = -999.
# IF Fat.bin_10=2 Fat10_instab=1.
# IF Fat.bin_10=1 Fat10_instab=0.
# EXECUTE.
# 
# COMPUTE coll_instab=-999.
# IF Collagen.bin=2 coll_instab=0.
# IF Collagen.bin=1 coll_instab=1.
# EXECUTE.
# 
# 
# COMPUTE SMC_instab=-999.
# IF SMC.bin=2 SMC_instab=0.
# IF SMC.bin=1 SMC_instab=1.
# EXECUTE.
# 
# COMPUTE IPH_instab=-999.
# IF IPH.bin=0 IPH_instab=0.
# IF IPH.bin=1 IPH_instab=1.
# EXECUTE.
# 
# COMPUTE Instability=Macro_instab + Fat10_instab +  coll_instab + SMC_instab + IPH_instab.
# EXECUTE.

# Fix plaquephenotypes
attach(AEDB.CEA)
# mac instability
AEDB.CEA[,"MAC_Instability"] <- NA
AEDB.CEA$MAC_Instability[Macrophages.bin == -999] <- NA
AEDB.CEA$MAC_Instability[Macrophages.bin == "no/minor"] <- 0
AEDB.CEA$MAC_Instability[Macrophages.bin == "moderate/heavy"] <- 1

# fat instability
AEDB.CEA[,"FAT10_Instability"] <- NA
AEDB.CEA$FAT10_Instability[Fat.bin_10 == -999] <- NA
AEDB.CEA$FAT10_Instability[Fat.bin_10 == " <10%"] <- 0
AEDB.CEA$FAT10_Instability[Fat.bin_10 == " >10%"] <- 1

# col instability 
AEDB.CEA[,"COL_Instability"] <- NA
AEDB.CEA$COL_Instability[Collagen.bin == -999] <- NA
AEDB.CEA$COL_Instability[Collagen.bin == "no/minor"] <- 1
AEDB.CEA$COL_Instability[Collagen.bin == "moderate/heavy"] <- 0

# smc instability
AEDB.CEA[,"SMC_Instability"] <- NA
AEDB.CEA$SMC_Instability[SMC.bin == -999] <- NA
AEDB.CEA$SMC_Instability[SMC.bin == "no/minor"] <- 1
AEDB.CEA$SMC_Instability[SMC.bin == "moderate/heavy"] <- 0

# iph instability
AEDB.CEA[,"IPH_Instability"] <- NA
AEDB.CEA$IPH_Instability[IPH.bin == -999] <- NA
AEDB.CEA$IPH_Instability[IPH.bin == "no"] <- 0
AEDB.CEA$IPH_Instability[IPH.bin == "yes"] <- 1

detach(AEDB.CEA)

table(AEDB.CEA$MAC_Instability, useNA = "ifany")

   0    1 <NA> 
 847  992  584 
table(AEDB.CEA$FAT10_Instability, useNA = "ifany")

   0    1 <NA> 
 542 1316  565 
table(AEDB.CEA$COL_Instability, useNA = "ifany")

   0    1 <NA> 
1469  382  572 
table(AEDB.CEA$SMC_Instability, useNA = "ifany")

   0    1 <NA> 
1244  602  577 
table(AEDB.CEA$IPH_Instability, useNA = "ifany")

   0    1 <NA> 
 746 1108  569 
# creating vulnerability index
AEDB.CEA <- AEDB.CEA %>% mutate(Plaque_Vulnerability_Index = factor(rowSums(.[grep("_Instability", names(.))], na.rm = TRUE)),
                                )

table(AEDB.CEA$Plaque_Vulnerability_Index, useNA = "ifany")

  0   1   2   3   4   5 
713 348 479 535 251  97 
# str(AEDB.CEA$Plaque_Vulnerability_Index)

Here we plot the levels of inverse-rank normal transformed MCP1 plaque levels from experiment 1 and 2 to the Plaque vulnerability index.

library(sjlabelled)

AEDB.CEA$yeartemp <- as.numeric(year(AEDB.CEA$dateok))

attach(AEDB.CEA)

AEDB.CEA[,"ORyearGroup"] <- NA
AEDB.CEA$ORyearGroup[yeartemp <= 2007] <- "< 2007"
AEDB.CEA$ORyearGroup[yeartemp > 2007] <- "> 2007"
detach(AEDB.CEA)

table(AEDB.CEA$ORyearGroup, AEDB.CEA$ORdate_year)
        
         2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019
  < 2007   81  157  190  185  183  152    0    0    0    0    0    0    0    0    0    0    0    0
  > 2007    0    0    0    0    0    0  138  182  159  164  176  149  163   76   85   65   66   52

Visualisations

# Global test
compare_means(MCP1_pg_ml_2015_rank ~ Plaque_Vulnerability_Index,  data = AEDB.CEA, method = "kruskal.test")
p1 <- ggpubr::ggboxplot(AEDB.CEA, 
                  x = "Plaque_Vulnerability_Index",
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Plaque vulnerability index",
                  ylab = "MCP1 plaque [pg/mL]\n(INT, exp 2)",
                  color = "Plaque_Vulnerability_Index",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(label = "p.format",  method = "kruskal.test")
ggpar(p1, legend = "bottom", legend.title = "Plaque vulnerability index")
ggsave(filename = paste0(PLOT_loc, "/", Today, ".MCP1.plaque.exp2_pgmL.PlaqueVulnerabilityIndex.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ Plaque_Vulnerability_Index, group.by = "Gender", data = AEDB.CEA, method = "kruskal.test")
p2 <- ggpubr::ggboxplot(AEDB.CEA, 
                  x = "Plaque_Vulnerability_Index",
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Plaque vulnerability index by gender",
                  ylab = "MCP1 plaque [pg/mL]\n(INT, exp 2)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format",  method = "kruskal.test")
ggpar(p2, legend = "bottom", legend.title = "Plaque vulnerability index")
ggsave(filename = paste0(PLOT_loc, "/", Today, ".MCP1.plaque.exp2_pgmL.PlaqueVulnerabilityIndex.byGender.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_rank ~ Plaque_Vulnerability_Index,  data = AEDB.CEA, method = "kruskal.test")
p3 <- ggpubr::ggboxplot(AEDB.CEA, 
                  x = "Plaque_Vulnerability_Index",
                  y = "MCP1_rank", 
                  xlab = "Plaque vulnerability index",
                  ylab = "MCP1 plaque [pg/mL]\n(INT, exp 1)",
                  color = "Plaque_Vulnerability_Index",
                  palette = "npg",
                  add = "jitter") +
  stat_compare_means(label = "p.format",  method = "kruskal.test")
ggpar(p3, legend = "bottom", legend.title = "Plaque vulnerability index")
ggsave(filename = paste0(PLOT_loc, "/", Today, ".MCP1.plaque.exp1_pgmL.PlaqueVulnerabilityIndex.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_rank ~ Plaque_Vulnerability_Index, group.by = "Gender", data = AEDB.CEA, method = "kruskal.test")
p4 <- ggpubr::ggboxplot(AEDB.CEA, 
                  x = "Plaque_Vulnerability_Index",
                  y = "MCP1_rank", 
                  xlab = "Plaque vulnerability index",
                  ylab = "MCP1 plaque [pg/mL]\n(INT, exp 1)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format",  method = "kruskal.test")
ggpar(p4, legend = "bottom", legend.title = "Plaque vulnerability index")
ggsave(filename = paste0(PLOT_loc, "/", Today, ".MCP1.plaque.exp1_pgmL.PlaqueVulnerabilityIndex.byGender.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ Plaque_Vulnerability_Index, data = AEDB.CEA, method = "kruskal.test")
p5 <- ggpubr::ggboxplot(AEDB.CEA, 
                  x = "Plaque_Vulnerability_Index",
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Plaque vulnerability index",
                  ylab = "MCP1 plaque [pg/mL]\n(INT, exp 2)",
                  color = "Plaque_Vulnerability_Index",
                  palette = "npg",
                  facet.by = "ORyearGroup",
                  add = "jitter") +
  stat_compare_means(label = "p.format",  method = "kruskal.test")
ggpar(p5, legend = "bottom", legend.title = "Plaque vulnerability index")
ggsave(filename = paste0(PLOT_loc, "/", Today, ".MCP1.plaque.exp2_pgmL.PlaqueVulnerabilityIndex_Facet_byYear.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_pg_ml_2015_rank ~ Plaque_Vulnerability_Index, group.by = "Gender", data = AEDB.CEA, method = "kruskal.test")
p6 <- ggpubr::ggboxplot(AEDB.CEA, 
                  x = "Plaque_Vulnerability_Index",
                  y = "MCP1_pg_ml_2015_rank", 
                  xlab = "Plaque vulnerability index",
                  ylab = "MCP1 plaque [pg/mL]\n(INT, exp 2)",
                  color = "Gender",
                  palette = c("#D5267B", "#1290D9"),
                  facet.by = "ORyearGroup",
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format",  method = "kruskal.test")
ggpar(p6, legend = "bottom", legend.title = "Plaque vulnerability index")
ggsave(filename = paste0(PLOT_loc, "/", Today, ".MCP1.plaque.exp2_pgmL.PlaqueVulnerabilityIndex_Facet_byYear.byGender.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_rank ~ Plaque_Vulnerability_Index,  data = AEDB.CEA, method = "kruskal.test")
p7 <- ggpubr::ggboxplot(AEDB.CEA, 
                  x = "Plaque_Vulnerability_Index",
                  y = "MCP1_rank", 
                  xlab = "Plaque vulnerability index",
                  ylab = "MCP1 plaque [pg/mL]\n(INT, exp 1)",
                  color = "Plaque_Vulnerability_Index",
                  palette = "npg",
                  facet.by = "ORyearGroup",
                  add = "jitter") +
  stat_compare_means(label = "p.format",  method = "kruskal.test")
ggpar(p7, legend = "bottom", legend.title = "Plaque vulnerability index")
ggsave(filename = paste0(PLOT_loc, "/", Today, ".MCP1.plaque.exp1_pgmL.PlaqueVulnerabilityIndex_Facet_byYear.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

compare_means(MCP1_rank ~ Plaque_Vulnerability_Index, group.by = "Gender",   data = AEDB.CEA, method = "kruskal.test")
p8 <- ggpubr::ggboxplot(AEDB.CEA, 
                  x = "Plaque_Vulnerability_Index",
                  y = "MCP1_rank", 
                  xlab = "Plaque vulnerability index",
                  ylab = "MCP1 plaque [pg/mL]\n(INT, exp 1)",
                  color = "Gender",
                  palette = "npg",
                  facet.by = "ORyearGroup",
                  add = "jitter") +
  stat_compare_means(aes(group = Gender), label = "p.format",  method = "kruskal.test")
ggpar(p8, legend = "bottom", legend.title = "Plaque vulnerability index")
ggsave(filename = paste0(PLOT_loc, "/", Today, ".MCP1.plaque.exp1_pgmL.PlaqueVulnerabilityIndex_Facet_byYear.pdf"), plot = last_plot())
Saving 7.29 x 4.51 in image

Model 1

In this model we correct for Age, Gender, and year of surgery.

Here we use the inverse-rank normalized data - visually this is more normally distributed.

Analysis of the plaque vulnerability indez as a function of plaque MCP1 levels.

TRAITS.PROTEIN.RANK.extra = c("MCP1_pg_ml_2015_rank",  "MCP1_rank")

GLM.results <- data.frame(matrix(NA, ncol = 16, nrow = 0))
for (protein in 1:length(TRAITS.PROTEIN.RANK.extra)) {
  PROTEIN = TRAITS.PROTEIN.RANK.extra[protein]
  cat(paste0("\nAnalysis of ",PROTEIN,".\n"))
  TRAIT = "Plaque_Vulnerability_Index"
    cat(paste0("\n- processing ",TRAIT,"\n\n"))
    currentDF <- as.data.frame(AEDB.CEA %>%
      dplyr::select(., PROTEIN, TRAIT, COVARIATES_M1, ORdate_epoch) %>%
      filter(complete.cases(.))) %>%
      filter_if(~is.numeric(.), all_vars(!is.infinite(.))) %>%
      droplevels(.)
    
    # fix numeric OR year
    currentDF$ORdate_year <- as.numeric(currentDF$ORdate_year)
    
    # for debug
    # print(DT::datatable(currentDF))
    # print(nrow(currentDF))
    # print(str(currentDF))
    # print(class(currentDF[,TRAIT]))
    # table(currentDF$ORdate_year)
    ### univariate
     # + Hypertension.composite + DiabetesStatus + SmokerCurrent + 
     #            Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + BMI + 
     #            CAD_history + Stroke_history + Peripheral.interv + stenose
    fit <- polr(currentDF[,TRAIT] ~ currentDF[,PROTEIN] + Age + Gender + ORdate_year, 
              data  =  currentDF, 
              Hess = TRUE)
    print(summary(fit))
    
    ## store table
    (ctable <- coef(summary(fit)))

    ## calculate and store p values
    p <- pnorm(abs(ctable[, "t value"]), lower.tail = FALSE) * 2
    
    ## combined table
    print((ctable <- cbind(ctable, "p value" = p)))
  }

Analysis of MCP1_pg_ml_2015_rank.

- processing Plaque_Vulnerability_Index

Call:
polr(formula = currentDF[, TRAIT] ~ currentDF[, PROTEIN] + Age + 
    Gender + ORdate_year, data = currentDF, Hess = TRUE)

Coefficients:
                        Value Std. Error  t value
currentDF[, PROTEIN]  0.41239  0.0532549    7.744
Age                   0.01012  0.0064653    1.565
Gendermale            0.64970  0.1152482    5.637
ORdate_year          -0.19973  0.0002414 -827.252

Intercepts:
    Value       Std. Error  t value    
0|1   -402.2392      0.0041 -99035.3484
1|2   -400.8092      0.0927  -4325.4671
2|3   -399.5916      0.1060  -3770.4613
3|4   -398.0236      0.1241  -3208.0976
4|5   -396.2912      0.1820  -2177.0505

Residual Deviance: 3747.495 
AIC: 3765.495 
                             Value  Std. Error       t value      p value
currentDF[, PROTEIN]    0.41239425 0.053254875      7.743784 9.650094e-15
Age                     0.01011716 0.006465267      1.564847 1.176187e-01
Gendermale              0.64969761 0.115248197      5.637378 1.726592e-08
ORdate_year            -0.19972675 0.000241434   -827.252005 0.000000e+00
0|1                  -402.23922094 0.004061572 -99035.348359 0.000000e+00
1|2                  -400.80924289 0.092662650  -4325.467075 0.000000e+00
2|3                  -399.59164840 0.105979512  -3770.461304 0.000000e+00
3|4                  -398.02363633 0.124068430  -3208.097627 0.000000e+00
4|5                  -396.29118673 0.182031236  -2177.050458 0.000000e+00

Analysis of MCP1_rank.

- processing Plaque_Vulnerability_Index

Call:
polr(formula = currentDF[, TRAIT] ~ currentDF[, PROTEIN] + Age + 
    Gender + ORdate_year, data = currentDF, Hess = TRUE)

Coefficients:
                       Value Std. Error t value
currentDF[, PROTEIN] 0.57914   0.081983   7.064
Age                  0.01674   0.010018   1.671
Gendermale           0.67004   0.173922   3.853
ORdate_year          0.11245   0.000364 308.898

Intercepts:
    Value      Std. Error t value   
0|1   223.5627     0.0048 46996.7054
1|2   225.2892     0.1979  1138.6231
2|3   226.6480     0.2156  1051.2929
3|4   228.3111     0.2372   962.6942
4|5   229.9356     0.2885   796.9079

Residual Deviance: 1682.273 
AIC: 1700.273 
                            Value   Std. Error      t value      p value
currentDF[, PROTEIN]   0.57914246 0.0819826492     7.064208 1.615350e-12
Age                    0.01674476 0.0100184222     1.671396 9.464339e-02
Gendermale             0.67004219 0.1739220743     3.852543 1.168977e-04
ORdate_year            0.11245196 0.0003640419   308.898413 0.000000e+00
0|1                  223.56270901 0.0047569868 46996.705365 0.000000e+00
1|2                  225.28918129 0.1978610688  1138.623088 0.000000e+00
2|3                  226.64797639 0.2155897515  1051.292906 0.000000e+00
3|4                  228.31109565 0.2371584838   962.694195 0.000000e+00
4|5                  229.93564181 0.2885347907   796.907857 0.000000e+00

Model 2

In this model we correct for Age, Gender, Hypertension status, Diabetes status, current smoker status, lipid-lowering drugs (LLDs), antiplatelet medication, eGFR (MDRD), BMI, MedHx_CVD (combination of CAD history, stroke history, and peripheral interventions), and stenosis..


for (protein in 1:length(TRAITS.PROTEIN.RANK.extra)) {
  PROTEIN = TRAITS.PROTEIN.RANK.extra[protein]
  cat(paste0("\nAnalysis of ",PROTEIN,".\n"))
  TRAIT = "Plaque_Vulnerability_Index"
    cat(paste0("\n- processing ",TRAIT,"\n\n"))
    currentDF <- as.data.frame(AEDB.CEA %>%
      dplyr::select(., PROTEIN, TRAIT, COVARIATES_M2) %>%
      filter(complete.cases(.))) %>%
      filter_if(~is.numeric(.), all_vars(!is.infinite(.))) %>%
      droplevels(.)
    
    # fix numeric OR year
    currentDF$ORdate_year <- as.numeric(currentDF$ORdate_year)
    
    # for debug
    # print(DT::datatable(currentDF))
    # print(nrow(currentDF))
    # print(str(currentDF))
    # print(class(currentDF[,TRAIT]))
    ### univariate

    fit <- polr(as.factor(currentDF[,TRAIT]) ~ currentDF[,PROTEIN] + Age + Gender + ORdate_year + Hypertension.composite + DiabetesStatus + SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + BMI + MedHx_CVD + stenose,
              data  =  currentDF,
              Hess = TRUE)
    
    print(summary(fit))
    
    ## store table
    (ctable <- coef(summary(fit)))

    ## calculate and store p values
    p <- pnorm(abs(ctable[, "t value"]), lower.tail = FALSE) * 2
    
    ## combined table
    print((ctable <- cbind(ctable, "p value" = p)))
  }

Analysis of MCP1_pg_ml_2015_rank.

- processing Plaque_Vulnerability_Index

Call:
polr(formula = as.factor(currentDF[, TRAIT]) ~ currentDF[, PROTEIN] + 
    Age + Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF, Hess = TRUE)

Coefficients:
                              Value Std. Error   t value
currentDF[, PROTEIN]       0.418370  0.0579871    7.2149
Age                        0.005896  0.0120649    0.4887
Gendermale                 0.662747  0.1286571    5.1513
ORdate_year               -0.211763  0.0008317 -254.6074
Hypertension.compositeyes -0.131494  0.1741966   -0.7549
DiabetesStatusDiabetes    -0.136239  0.1374964   -0.9909
SmokerStatusEx-smoker      0.084901  0.1295999    0.6551
SmokerStatusNever smoked   0.552791  0.1842708    2.9999
Med.Statin.LLDyes          0.100217  0.1448559    0.6918
Med.all.antiplateletyes   -0.062565  0.2065019   -0.3030
GFR_MDRD                  -0.002856  0.0040793   -0.7002
BMI                       -0.003863  0.0236201   -0.1635
MedHx_CVDyes               0.161993  0.1179045    1.3739
stenose50-70%             -0.667972  0.1575696   -4.2392
stenose70-90%             -0.645306  0.0951343   -6.7831
stenose90-99%             -0.796388  0.0979339   -8.1319
stenose100% (Occlusion)   -1.570633  0.0108586 -144.6441
stenose50-99%             -1.263311  0.0065156 -193.8893
stenose70-99%             -1.199791  0.0071226 -168.4488

Intercepts:
    Value      Std. Error t value   
0|1  -427.6886     0.0602 -7103.1843
1|2  -426.1533     0.1353 -3148.7832
2|3  -424.9137     0.1520 -2795.1793
3|4  -423.3275     0.1490 -2840.3173
4|5  -421.6368     0.1983 -2126.3969

Residual Deviance: 3217.477 
AIC: 3265.477 
                                  Value   Std. Error       t value      p value
currentDF[, PROTEIN]       4.183699e-01 0.0579870631     7.2148842 5.397987e-13
Age                        5.896199e-03 0.0120649241     0.4887059 6.250499e-01
Gendermale                 6.627466e-01 0.1286570869     5.1512641 2.587365e-07
ORdate_year               -2.117629e-01 0.0008317231  -254.6074325 0.000000e+00
Hypertension.compositeyes -1.314941e-01 0.1741966173    -0.7548602 4.503328e-01
DiabetesStatusDiabetes    -1.362392e-01 0.1374964136    -0.9908561 3.217558e-01
SmokerStatusEx-smoker      8.490072e-02 0.1295998539     0.6550989 5.124041e-01
SmokerStatusNever smoked   5.527907e-01 0.1842707752     2.9998828 2.700835e-03
Med.Statin.LLDyes          1.002173e-01 0.1448559028     0.6918414 4.890369e-01
Med.all.antiplateletyes   -6.256453e-02 0.2065019313    -0.3029731 7.619103e-01
GFR_MDRD                  -2.856430e-03 0.0040792856    -0.7002280 4.837850e-01
BMI                       -3.862761e-03 0.0236200979    -0.1635370 8.700956e-01
MedHx_CVDyes               1.619931e-01 0.1179045387     1.3739348 1.694619e-01
stenose50-70%             -6.679723e-01 0.1575695959    -4.2392205 2.242973e-05
stenose70-90%             -6.453059e-01 0.0951342876    -6.7831058 1.176194e-11
stenose90-99%             -7.963882e-01 0.0979338596    -8.1318987 4.226178e-16
stenose100% (Occlusion)   -1.570633e+00 0.0108586007  -144.6441313 0.000000e+00
stenose50-99%             -1.263311e+00 0.0065156313  -193.8892920 0.000000e+00
stenose70-99%             -1.199791e+00 0.0071225894  -168.4487660 0.000000e+00
0|1                       -4.276886e+02 0.0602108239 -7103.1843328 0.000000e+00
1|2                       -4.261533e+02 0.1353390471 -3148.7832305 0.000000e+00
2|3                       -4.249137e+02 0.1520165995 -2795.1793305 0.000000e+00
3|4                       -4.233275e+02 0.1490423213 -2840.3173304 0.000000e+00
4|5                       -4.216368e+02 0.1982869504 -2126.3969333 0.000000e+00

Analysis of MCP1_rank.

- processing Plaque_Vulnerability_Index

Call:
polr(formula = as.factor(currentDF[, TRAIT]) ~ currentDF[, PROTEIN] + 
    Age + Gender + ORdate_year + Hypertension.composite + DiabetesStatus + 
    SmokerStatus + Med.Statin.LLD + Med.all.antiplatelet + GFR_MDRD + 
    BMI + MedHx_CVD + stenose, data = currentDF, Hess = TRUE)

Coefficients:
                              Value Std. Error t value
currentDF[, PROTEIN]       0.582091  0.0870366  6.6879
Age                        0.007899  0.0148627  0.5315
Gendermale                 0.752179  0.1888165  3.9836
ORdate_year                0.072517  0.0009023 80.3660
Hypertension.compositeyes  0.297669  0.2500139  1.1906
DiabetesStatusDiabetes    -0.225881  0.2116702 -1.0671
SmokerStatusEx-smoker     -0.099253  0.1832088 -0.5418
SmokerStatusNever smoked   0.325615  0.2747025  1.1853
Med.Statin.LLDyes          0.171944  0.1984399  0.8665
Med.all.antiplateletyes   -0.117527  0.2979384 -0.3945
GFR_MDRD                  -0.004244  0.0052909 -0.8020
BMI                        0.034714  0.0266318  1.3035
MedHx_CVDyes               0.198649  0.1726682  1.1505
stenose50-70%              0.067700  0.0182550  3.7086
stenose70-90%              0.743339  0.0875836  8.4872
stenose90-99%              0.631206  0.0878806  7.1825
stenose100% (Occlusion)    0.952212  0.0303750 31.3486

Intercepts:
    Value     Std. Error t value  
0|1  144.6067    0.0362  3990.9743
1|2  146.3445    0.2214   660.9133
2|3  147.7665    0.2540   581.8450
3|4  149.3776    0.2662   561.0606
4|5  151.0046    0.3050   495.0780

Residual Deviance: 1504.004 
AIC: 1548.004 
                                  Value   Std. Error      t value       p value
currentDF[, PROTEIN]        0.582091419 0.0870365671    6.6878950  2.264035e-11
Age                         0.007898933 0.0148627060    0.5314600  5.951001e-01
Gendermale                  0.752178825 0.1888165035    3.9836498  6.786486e-05
ORdate_year                 0.072516969 0.0009023344   80.3659565  0.000000e+00
Hypertension.compositeyes   0.297668763 0.2500138827    1.1906089  2.338071e-01
DiabetesStatusDiabetes     -0.225880837 0.2116701594   -1.0671360  2.859104e-01
SmokerStatusEx-smoker      -0.099253443 0.1832088094   -0.5417504  5.879905e-01
SmokerStatusNever smoked    0.325614749 0.2747025317    1.1853358  2.358847e-01
Med.Statin.LLDyes           0.171943503 0.1984399313    0.8664763  3.862290e-01
Med.all.antiplateletyes    -0.117527397 0.2979383769   -0.3944688  6.932349e-01
GFR_MDRD                   -0.004243556 0.0052909466   -0.8020411  4.225292e-01
BMI                         0.034713834 0.0266318281    1.3034717  1.924138e-01
MedHx_CVDyes                0.198649091 0.1726681767    1.1504673  2.499515e-01
stenose50-70%               0.067699597 0.0182549767    3.7085556  2.084449e-04
stenose70-90%               0.743338980 0.0875835961    8.4871941  2.116860e-17
stenose90-99%               0.631205945 0.0878805931    7.1825408  6.842763e-13
stenose100% (Occlusion)     0.952212176 0.0303749713   31.3485786 1.017278e-215
0|1                       144.606657776 0.0362334225 3990.9742904  0.000000e+00
1|2                       146.344455249 0.2214276176  660.9132899  0.000000e+00
2|3                       147.766496279 0.2539619705  581.8449746  0.000000e+00
3|4                       149.377587074 0.2662414694  561.0605568  0.000000e+00
4|5                       151.004647042 0.3050118314  495.0779986  0.000000e+00

Session information


Version:      v1.0.0
Last update:  2021-02-11
Written by:   Sander W. van der Laan (s.w.vanderlaan-2[at]umcutrecht.nl).
Description:  Script to analyse MCP1 from the Ather-Express Biobank Study.
Minimum requirements: R version 3.5.2 (2018-12-20) -- 'Eggshell Igloo', macOS Mojave (10.14.2).

**MoSCoW To-Do List**
The things we Must, Should, Could, and Would have given the time we have.
_M_

_S_

_C_


_W_


**Changes log**
* v1.0.0 Inital version.

sessionInfo()
R version 4.0.3 (2020-10-10)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Big Sur 10.16

Matrix products: default
LAPACK: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] tools     stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] GGally_2.1.0               PerformanceAnalytics_2.0.4 xts_0.12.1                 zoo_1.8-8                  ggcorrplot_0.1.3.999      
 [6] Hmisc_4.4-2                Formula_1.2-4              lattice_0.20-41            survminer_0.4.8            survival_3.2-7            
[11] patchwork_1.1.1            ggsci_2.9                  openxlsx_4.2.3             ggpubr_0.4.0               tableone_0.12.0           
[16] labelled_2.7.0             sjPlot_2.8.7               sjlabelled_1.1.7           haven_2.3.1                devtools_2.3.2            
[21] usethis_2.0.0              MASS_7.3-53                DT_0.17                    knitr_1.31                 forcats_0.5.1             
[26] stringr_1.4.0              purrr_0.3.4                tibble_3.0.6               ggplot2_3.3.3              tidyverse_1.3.0           
[31] data.table_1.13.6          naniar_0.6.0               tidyr_1.1.2                dplyr_1.0.4                optparse_1.6.6            
[36] readr_1.4.0               

loaded via a namespace (and not attached):
  [1] readxl_1.3.1        backports_1.2.1     plyr_1.8.6          splines_4.0.3       crosstalk_1.1.1     TH.data_1.0-10     
  [7] digest_0.6.27       htmltools_0.5.1.1   checkmate_2.0.0     magrittr_2.0.1      memoise_2.0.0       cluster_2.1.0      
 [13] remotes_2.2.0       modelr_0.1.8        sandwich_3.0-0      prettyunits_1.1.1   jpeg_0.1-8.1        colorspace_2.0-0   
 [19] rvest_0.3.6         mitools_2.4         xfun_0.20           callr_3.5.1         crayon_1.4.1        jsonlite_1.7.2     
 [25] lme4_1.1-26         glue_1.4.2          gtable_0.3.0        emmeans_1.5.4       sjstats_0.18.1      sjmisc_2.8.6       
 [31] car_3.0-10          pkgbuild_1.2.0      abind_1.4-5         scales_1.1.1        mvtnorm_1.1-1       DBI_1.1.1          
 [37] rstatix_0.6.0       ggeffects_1.0.1     Rcpp_1.0.6          htmlTable_2.1.0     xtable_1.8-4        performance_0.7.0  
 [43] foreign_0.8-81      km.ci_0.5-2         survey_4.0          htmlwidgets_1.5.3   httr_1.4.2          getopt_1.20.3      
 [49] RColorBrewer_1.1-2  ellipsis_0.3.1      reshape_0.8.8       pkgconfig_2.0.3     farver_2.0.3        nnet_7.3-15        
 [55] dbplyr_2.1.0        reshape2_1.4.4      tidyselect_1.1.0    labeling_0.4.2      rlang_0.4.10        effectsize_0.4.3   
 [61] munsell_0.5.0       cellranger_1.1.0    cachem_1.0.3        cli_2.3.0           generics_0.1.0      broom_0.7.4        
 [67] evaluate_0.14       fastmap_1.1.0       yaml_2.2.1          processx_3.4.5      fs_1.5.0            zip_2.1.1          
 [73] survMisc_0.5.5      visdat_0.5.3        nlme_3.1-152        xml2_1.3.2          compiler_4.0.3      rstudioapi_0.13    
 [79] png_0.1-7           curl_4.3            e1071_1.7-4         testthat_3.0.1      ggsignif_0.6.0      reprex_1.0.0       
 [85] statmod_1.4.35      stringi_1.5.3       ps_1.5.0            parameters_0.11.0   desc_1.2.0          Matrix_1.3-2       
 [91] nloptr_1.2.2.2      KMsurv_0.1-5        vctrs_0.3.6         pillar_1.4.7        lifecycle_0.2.0     estimability_1.3   
 [97] insight_0.12.0      latticeExtra_0.6-29 R6_2.5.0            gridExtra_2.3       rio_0.5.16          sessioninfo_1.1.1  
[103] codetools_0.2-18    boot_1.3-26         assertthat_0.2.1    pkgload_1.1.0       rprojroot_2.0.2     withr_2.4.1        
[109] multcomp_1.4-16     mgcv_1.8-33         bayestestR_0.8.2    hms_1.0.0           quadprog_1.5-8      rpart_4.1-15       
[115] grid_4.0.3          coda_0.19-4         class_7.3-18        minqa_1.2.4         rmarkdown_2.6       carData_3.0-4      
[121] base64enc_0.1-3     lubridate_1.7.9.2   tinytex_0.29       

Saving environment

save.image(paste0(PROJECT_loc, "/",Today,".",PROJECTNAME,".additional_figures.RData"))
© 1979-2021 Sander W. van der Laan | s.w.vanderlaan-2[at]gmail.com | swvanderlaan.github.io.
LS0tCnRpdGxlOiAiQWRkaXRpb25hbCBGaWd1cmVzIgphdXRob3I6ICdbU2FuZGVyIFcuIHZhbiBkZXIgTGFhbiwgUGhEXShodHRwczovL3N3dmFuZGVybGFhbi5naXRodWIuaW8pIHwgQHN3dmFuZGVybGFhbjsgTWFyaW9zIEdlb3JnYWtpcywgYW5kIG1hbnkgb3RoZXJzLicKZGF0ZTogJ2ByIFN5cy5EYXRlKClgJwpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazogCiAgICBjYWNoZTogeWVzCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUKICAgIGNvbGxhcHNlOiB5ZXMKICAgIGRmX3ByaW50OiBwYWdlZAogICAgZmlnLmFsaWduOiBjZW50ZXIKICAgIGZpZ19jYXB0aW9uOiB5ZXMKICAgIGZpZ19oZWlnaHQ6IDEwCiAgICBmaWdfcmV0aW5hOiAyCiAgICBmaWdfd2lkdGg6IDEyCiAgICB0aGVtZTogcGFwZXIKICAgIHRvYzogeWVzCiAgICB0b2NfZmxvYXQ6CiAgICAgIGNvbGxhcHNlZDogbm8KICAgICAgc21vb3RoX3Njcm9sbDogeWVzCiAgICBoaWdobGlnaHQ6IHRhbmdvCm1haW5mb250OiBIZWx2ZXRpY2EKc3VidGl0bGU6IEFjY29tcGFueWluZyAnTW9ub2N5dGUtY2hlbW9hdHRyYWN0YW50IHByb3RlaW4tMSBMZXZlbHMgaW4gSHVtYW4gQXRoZXJvc2NsZXJvc2lzIEFzc29jaWF0ZSB3aXRoIFBsYXF1ZSBWdWxuZXJhYmlsaXR5LicKZWRpdG9yX29wdGlvbnM6CiAgY2h1bmtfb3V0cHV0X3R5cGU6IGlubGluZQotLS0KYGBge3IgZ2xvYmFsX29wdGlvbnMsIGluY2x1ZGUgPSBGQUxTRX0KIyBmdXJ0aGVyIGRlZmluZSBzb21lIGtuaXRyLW9wdGlvbnMuCmtuaXRyOjpvcHRzX2NodW5rJHNldChmaWcud2lkdGggPSAxMiwgZmlnLmhlaWdodCA9IDgsIGZpZy5wYXRoID0gJ0ZpZ3VyZXMvJywKICAgICAgICAgICAgICAgICAgICAgIGV2YWwgPSBUUlVFLCB3YXJuaW5nID0gRkFMU0UsIG1lc3NhZ2UgPSBGQUxTRSkKYGBgCgojIFByZXBhcmF0aW9uCgpDbGVhbiB0aGUgZW52aXJvbm1lbnQuCmBgYHtyIENsZWFyRW52aXJvbm1lbnQsIGluY2x1ZGUgPSBGQUxTRX0Kcm0obGlzdCA9IGxzKCkpCmBgYAoKU2V0IGxvY2F0aW9ucywgYW5kIHRoZSB3b3JraW5nIGRpcmVjdG9yeS4KYGBge3IgTG9jYWxTeXN0ZW0sIGluY2x1ZGUgPSBGQUxTRX0KIyMjIE9wZXJhdGluZyBTeXN0ZW0gVmVyc2lvbgojIyMgTWFjIFBybwojIFJPT1RfbG9jID0gIi9Wb2x1bWVzL0VsaXRlUHJvUXgyTWVkaWEiCiMgR0VOT01JQ19sb2MgPSAiL1VzZXJzL3N2YW5kZXJsYWFuL2lDbG91ZC9HZW5vbWljcyIKCiMjIyBNYWNCb29rIFBybwojIFJPT1RfbG9jID0gIi9Vc2Vycy9zd3ZhbmRlcmxhYW4iCiMgR0VOT01JQ19sb2MgPSBwYXN0ZTAoUk9PVF9sb2MsICIvaUNsb3VkL0dlbm9taWNzIikKCiMjIyBNYWNCb29rIEFpcgpST09UX2xvYyA9ICIvVXNlcnMvc2xhYW4zIgpHRU5PTUlDX2xvYyA9IHBhc3RlMChST09UX2xvYywgIi9pQ2xvdWQvR2Vub21pY3MiKQoKIyMjIEdpdEh1YiAtIEdlbmVyaWMgTG9jYXRpb25zCkFFREJfbG9jID0gcGFzdGUwKEdFTk9NSUNfbG9jLCAiL0FFLUFBQV9HU19EQnMiKQpMQUJfbG9jID0gcGFzdGUwKEdFTk9NSUNfbG9jLCAiL0xhYkJ1c2luZXNzIikKUkVTVUxUUyA9IHBhc3RlMChST09UX2xvYywgIi9naXQvc3d2YW5kZXJsYWFuLzIwMjBfZ2Vvcmdha2lzX3ZhbmRlcmxhYW5fTUNQMSIpClJBV0RBVEEgPSBwYXN0ZTAoUk9PVF9sb2MsICIvUExJTksvX0FFX09SSUdJTkFMUy9BRVNDUk5BL3ByZXBwZWRfZGF0YSIpCgpQUk9KRUNUX2xvYyA9IHBhc3RlMChST09UX2xvYywgIi9naXQvc3d2YW5kZXJsYWFuLzIwMjBfZ2Vvcmdha2lzX3ZhbmRlcmxhYW5fTUNQMSIpCgojIyMgUExJTksgLSBHZW5lcmljIExvY2F0aW9ucwojIEFFREJfbG9jID0gcGFzdGUwKEdFTk9NSUNfbG9jLCAiL0FFLUFBQV9HU19EQnMiKQojIExBQl9sb2MgPSBwYXN0ZTAoR0VOT01JQ19sb2MsICIvTGFiQnVzaW5lc3MiKQojIFJFU1VMVFMgPSBwYXN0ZTAoUk9PVF9sb2MsICIvUExJTksvYW5hbHlzZXMvbG9va3Vwcy9BRV8yMDE5MDkxMl8wMTBfTURJQ0hHQU5TX1NXVkRMQUFOX0lMNl9NQ1AxIikKIyBSQVdEQVRBID0gcGFzdGUwKFJPT1RfbG9jLCAiL1BMSU5LL19BRV9PUklHSU5BTFMvQUVTQ1JOQS9wcmVwcGVkX2RhdGEiKQojIAojIFBST0pFQ1RfbG9jID0gcGFzdGUwKFJPT1RfbG9jLCAiL1BMSU5LL2FuYWx5c2VzL2xvb2t1cHMvQUVfMjAxOTA5MTJfMDEwX01ESUNIR0FOU19TV1ZETEFBTl9JTDZfTUNQMSIpCgojIyMgU09NRSBWQVJJQUJMRVMgV0UgTkVFRCBET1dOIFRIRSBMSU5FCmNhdCgiXG5EZWZpbmluZyBwaGVub3R5cGVzIGFuZCBkYXRhc2V0cy5cbiIpClBST0pFQ1ROQU1FPSJNQ1AxX3BnX21MIgojIFNVQlBST0pFQ1ROQU1FPSIiCgpjYXQoIlxuQ3JlYXRlIGEgbmV3IGFuYWx5c2lzIGRpcmVjdG9yeSwgaW5jbHVkaW5nIHN1YmRpcmVjdG9yaWVzLlxuIikKIyBBbmFseXNpcwppZmVsc2UoIWRpci5leGlzdHMoZmlsZS5wYXRoKFBST0pFQ1RfbG9jLCAiLyIsUFJPSkVDVE5BTUUpKSwgCiAgICAgICBkaXIuY3JlYXRlKGZpbGUucGF0aChQUk9KRUNUX2xvYywgIi8iLFBST0pFQ1ROQU1FKSksIAogICAgICAgRkFMU0UpCkFOQUxZU0lTX2xvYyA9IHBhc3RlMChQUk9KRUNUX2xvYywiLyIsUFJPSkVDVE5BTUUpCgojIFBsb3RzCmlmZWxzZSghZGlyLmV4aXN0cyhmaWxlLnBhdGgoQU5BTFlTSVNfbG9jLCAiL1BMT1RTIikpLCAKICAgICAgIGRpci5jcmVhdGUoZmlsZS5wYXRoKEFOQUxZU0lTX2xvYywgIi9QTE9UUyIpKSwgCiAgICAgICBGQUxTRSkKUExPVF9sb2MgPSBwYXN0ZTAoQU5BTFlTSVNfbG9jLCIvUExPVFMiKQoKIyBRQyBwbG90cwppZmVsc2UoIWRpci5leGlzdHMoZmlsZS5wYXRoKFBMT1RfbG9jLCAiL1FDIikpLCAKICAgICAgIGRpci5jcmVhdGUoZmlsZS5wYXRoKFBMT1RfbG9jLCAiL1FDIikpLCAKICAgICAgIEZBTFNFKQpRQ19sb2MgPSBwYXN0ZTAoUExPVF9sb2MsIi9RQyIpCgojIE91dHB1dCBmaWxlcwppZmVsc2UoIWRpci5leGlzdHMoZmlsZS5wYXRoKEFOQUxZU0lTX2xvYywgIi9PVVRQVVQiKSksIAogICAgICAgZGlyLmNyZWF0ZShmaWxlLnBhdGgoQU5BTFlTSVNfbG9jLCAiL09VVFBVVCIpKSwgCiAgICAgICBGQUxTRSkKT1VUX2xvYyA9IHBhc3RlMChBTkFMWVNJU19sb2MsICIvT1VUUFVUIikKCiMgQ09YIGFuYWx5c2lzCmlmZWxzZSghZGlyLmV4aXN0cyhmaWxlLnBhdGgoQU5BTFlTSVNfbG9jLCAiL0NPWCIpKSwgCiAgICAgICBkaXIuY3JlYXRlKGZpbGUucGF0aChBTkFMWVNJU19sb2MsICIvQ09YIikpLCAKICAgICAgIEZBTFNFKQpDT1hfbG9jID0gcGFzdGUwKEFOQUxZU0lTX2xvYywgIi9DT1giKQoKIyBCYXNlbGluZSBjaGFyYWN0ZXJpc3RpY3MKaWZlbHNlKCFkaXIuZXhpc3RzKGZpbGUucGF0aChBTkFMWVNJU19sb2MsICIvQkFTRUxJTkUiKSksIAogICAgICAgZGlyLmNyZWF0ZShmaWxlLnBhdGgoQU5BTFlTSVNfbG9jLCAiL0JBU0VMSU5FIikpLCAKICAgICAgIEZBTFNFKQpCQVNFTElORV9sb2MgPSBwYXN0ZTAoQU5BTFlTSVNfbG9jLCAiL0JBU0VMSU5FIikKCmNhdCgiXG5TZXR0aW5nIHdvcmtpbmcgZGlyZWN0b3J5IGFuZCBsaXN0aW5nIGl0cyBjb250ZW50cy5cbiIpCnNldHdkKHBhc3RlMChQUk9KRUNUX2xvYykpCmdldHdkKCkKbGlzdC5maWxlcygpCmBgYAoKQSBwYWNrYWdlLWluc3RhbGxhdGlvbiBmdW5jdGlvbi4KYGBge3IgRnVuY3Rpb246IGluc3RhbGxhdGlvbnMsIGluY2x1ZGUgPSBGQUxTRX0KaW5zdGFsbC5wYWNrYWdlcy5hdXRvIDwtIGZ1bmN0aW9uKHgpIHsgCiAgeCA8LSBhcy5jaGFyYWN0ZXIoc3Vic3RpdHV0ZSh4KSkgCiAgaWYoaXNUUlVFKHggJWluJSAucGFja2FnZXMoYWxsLmF2YWlsYWJsZSA9IFRSVUUpKSkgeyAKICAgIGV2YWwocGFyc2UodGV4dCA9IHNwcmludGYoInJlcXVpcmUoXCIlc1wiKSIsIHgpKSkKICB9IGVsc2UgeyAKICAgICMgVXBkYXRlIGluc3RhbGxlZCBwYWNrYWdlcyAtIHRoaXMgbWF5IG1lYW4gYSBmdWxsIHVwZ3JhZGUgb2YgUiwgd2hpY2ggaW4gdHVybgogICAgIyBtYXkgbm90IGJlIHdhcnJlbnRlZC4gCiAgICAjIHVwZGF0ZS5pbnN0YWxsLnBhY2thZ2VzLmF1dG8oYXNrID0gRkFMU0UpIAogICAgZXZhbChwYXJzZSh0ZXh0ID0gc3ByaW50ZigiaW5zdGFsbC5wYWNrYWdlcyhcIiVzXCIsIGRlcGVuZGVuY2llcyA9IFRSVUUsIHJlcG9zID0gXCJodHRwczovL2Nsb3VkLnItcHJvamVjdC5vcmcvXCIpIiwgeCkpKQogIH0KICBpZihpc1RSVUUoeCAlaW4lIC5wYWNrYWdlcyhhbGwuYXZhaWxhYmxlID0gVFJVRSkpKSB7IAogICAgZXZhbChwYXJzZSh0ZXh0ID0gc3ByaW50ZigicmVxdWlyZShcIiVzXCIpIiwgeCkpKQogIH0gZWxzZSB7CiAgICBpZiAoIXJlcXVpcmVOYW1lc3BhY2UoIkJpb2NNYW5hZ2VyIikpCiAgICAgIGluc3RhbGwucGFja2FnZXMoIkJpb2NNYW5hZ2VyIikKICAgICMgQmlvY01hbmFnZXI6Omluc3RhbGwoKSAjIHRoaXMgd291bGQgZW50YWlsIHVwZGF0aW5nIGluc3RhbGxlZCBwYWNrYWdlcywgd2hpY2ggaW4gdHVybmVkIG1heSBub3QgYmUgd2FycmVudGVkCiAgICBldmFsKHBhcnNlKHRleHQgPSBzcHJpbnRmKCJCaW9jTWFuYWdlcjo6aW5zdGFsbChcIiVzXCIpIiwgeCkpKQogICAgZXZhbChwYXJzZSh0ZXh0ID0gc3ByaW50ZigicmVxdWlyZShcIiVzXCIpIiwgeCkpKQogIH0KfQpgYGAKCkxvYWQgdGhvc2UgcGFja2FnZXMuCmBgYHtyIFNldHRpbmc6IGxvYWRpbmdfcGFja2FnZXMsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9Cmluc3RhbGwucGFja2FnZXMuYXV0bygicmVhZHIiKQppbnN0YWxsLnBhY2thZ2VzLmF1dG8oIm9wdHBhcnNlIikKaW5zdGFsbC5wYWNrYWdlcy5hdXRvKCJ0b29scyIpCmluc3RhbGwucGFja2FnZXMuYXV0bygiZHBseXIiKQppbnN0YWxsLnBhY2thZ2VzLmF1dG8oInRpZHlyIikKaW5zdGFsbC5wYWNrYWdlcy5hdXRvKCJuYW5pYXIiKQoKIyBUbyBnZXQgJ2RhdGEudGFibGUnIHdpdGggJ2Z3cml0ZScgdG8gYmUgYWJsZSB0byBkaXJlY3RseSB3cml0ZSBnemlwcGVkLWZpbGVzCiMgUmVmOiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80Mjc4ODQwMS9pcy1wb3NzaWJsZS10by11c2UtZndyaXRlLWZyb20tZGF0YS10YWJsZS13aXRoLWd6ZmlsZQojIGluc3RhbGwucGFja2FnZXMoImRhdGEudGFibGUiLCByZXBvcyA9ICJodHRwczovL1JkYXRhdGFibGUuZ2l0bGFiLmlvL2RhdGEudGFibGUiKQpsaWJyYXJ5KGRhdGEudGFibGUpCgppbnN0YWxsLnBhY2thZ2VzLmF1dG8oInRpZHl2ZXJzZSIpCmluc3RhbGwucGFja2FnZXMuYXV0bygia25pdHIiKQppbnN0YWxsLnBhY2thZ2VzLmF1dG8oIkRUIikKaW5zdGFsbC5wYWNrYWdlcy5hdXRvKCJNQVNTIikKIyBpbnN0YWxsLnBhY2thZ2VzLmF1dG8oIlNldXJhdCIpICMgbGF0ZXN0IHZlcnNpb24KCiMgSW5zdGFsbCB0aGUgZGV2dG9vbHMgcGFja2FnZSBmcm9tIEhhZGxleSBXaWNraGFtCmluc3RhbGwucGFja2FnZXMuYXV0bygnZGV2dG9vbHMnKQoKaW5zdGFsbC5wYWNrYWdlcy5hdXRvKCJoYXZlbiIpCmluc3RhbGwucGFja2FnZXMuYXV0bygic2psYWJlbGxlZCIpCmluc3RhbGwucGFja2FnZXMuYXV0bygic2pQbG90IikKaW5zdGFsbC5wYWNrYWdlcy5hdXRvKCJsYWJlbGxlZCIpCmluc3RhbGwucGFja2FnZXMuYXV0bygidGFibGVvbmUiKQoKaW5zdGFsbC5wYWNrYWdlcy5hdXRvKCJnZ3B1YnIiKQoKYGBgCgpXZSB3aWxsIGNyZWF0ZSBhIGRhdGVzdGFtcCBhbmQgZGVmaW5lIHRoZSBVdHJlY2h0IFNjaWVuY2UgUGFyayBDb2xvdXIgU2NoZW1lLgpgYGB7ciBTZXR0aW5nOiBDb2xvcnMsIGluY2x1ZGUgPSBGQUxTRX0KClRvZGF5ID0gZm9ybWF0KGFzLkRhdGUoYXMuUE9TSVhsdChTeXMudGltZSgpKSksICIlWSVtJWQiKQpUb2RheS5SZXBvcnQgPSBmb3JtYXQoYXMuRGF0ZShhcy5QT1NJWGx0KFN5cy50aW1lKCkpKSwgIiVBLCAlQiAlZCwgJVkiKQoKIyMjIFV0cmVjaHRTY2llbmNlUGFya0NvbG91cnNTY2hlbWUKIyMjCiMjIyBXZWJzaXRldG9jb252ZXJ0SEVYdG9SR0I6aHR0cDovL2hleC5jb2xvcnJycy5jb20uCiMjIyBGb3Jzb21lZnVuY3Rpb25zeW91c2hvdWxkZGl2aWRldGhlc2VudW1iZXJzYnkyNTUuCiMjIyAKIyMjCU5vLglDb2xvcgkJCSAgICAgIEhFWAkoUkdCKQkJCQkJCSAgICAgICAgICAgICAgQ0hSCQkgIE1BRi9JTkZPCiMjIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIyMJMQkgIHllbGxvdwkJCSAgICAjRkJCODIwICgyNTEsMTg0LDMyKQkJCQkgICAgICA9PgkxCQlvciAxLjA+SU5GTwojIyMJMgkgIGdvbGQJCQkgICAgICAjRjU5RDEwICgyNDUsMTU3LDE2KQkJCQkgICAgICA9PgkyCQkKIyMjCTMJICBzYWxtb24JCQkgICAgI0U1NTczOCAoMjI5LDg3LDU2KQkJCQkgICAgICA9PgkzCQlvciAwLjA1PE1BRjwwLjIgb3IgMC40PElORk88MC42CiMjIwk0CSAgZGFya3BpbmsJCSAgICAjREIwMDNGICgoMjE5LDAsNjMpCQkJCSAgICAgID0+CTQJCQojIyMJNQkgIGxpZ2h0cGluawkJICAgICNFMzU0OTMgKDIyNyw4NCwxNDcpCQkJCSAgICAgID0+CTUJCW9yIDAuODxJTkZPPDEuMAojIyMJNgkgIHBpbmsJCQkgICAgICAjRDUyNjdCICgyMTMsMzgsMTIzKQkJCQkgICAgICA9Pgk2CQkKIyMjCTcJICBoYXJkcGluawkJICAgICNDQzAwNzEgKDIwNCwwLDExMykJCQkJICAgICAgPT4JNwkJCiMjIwk4CSAgbGlnaHRwdXJwbGUJICAgICNBODQ0OEEgKDE2OCw2OCwxMzgpCQkJCSAgICAgID0+CTgJCQojIyMJOQkgIHB1cnBsZQkJCSAgICAjOUEzNDgwICgxNTQsNTIsMTI4KQkJCQkgICAgICA9Pgk5CQkKIyMjCTEwCWxhdmVuZGVsCQkgICAgIzhENUI5QSAoMTQxLDkxLDE1NCkJCQkJICAgICAgPT4JMTAJCQojIyMJMTEJYmx1ZXB1cnBsZQkJICAjNzA1Mjk2ICgxMTIsODIsMTUwKQkJCQkgICAgICA9PgkxMQkJCiMjIwkxMglwdXJwbGVibHVlCQkgICM2ODZBQTkgKDEwNCwxMDYsMTY5KQkJCSAgICAgID0+CTEyCQkKIyMjCTEzCWxpZ2h0cHVycGxlYmx1ZQkjNjE3M0FEICg5NywxMTUsMTczLzEwMSwxMjAsMTgwKQk9PgkxMwkJCiMjIwkxNAlzZWFibHVlCQkJICAgICM0QzgxQkYgKDc2LDEyOSwxOTEpCQkJCSAgICAgID0+CTE0CQkKIyMjCTE1CXNreWJsdWUJCQkgICAgIzJGOEJDOSAoNDcsMTM5LDIwMSkJCQkJICAgICAgPT4JMTUJCQojIyMJMTYJYXp1cmJsdWUJCSAgICAjMTI5MEQ5ICgxOCwxNDQsMjE3KQkJCQkgICAgICA9PgkxNgkJb3IgMC4wMTxNQUY8MC4wNSBvciAwLjI8SU5GTzwwLjQKIyMjCTE3CWxpZ2h0YXp1cmJsdWUJICAjMTM5NkQ4ICgxOSwxNTAsMjE2KQkJCQkgICAgICA9PgkxNwkJCiMjIwkxOAlncmVlbmJsdWUJCSAgICAjMTVBNkMxICgyMSwxNjYsMTkzKQkJCQkgICAgICA9PgkxOAkJCiMjIwkxOQlzZWF3ZWVkZ3JlZW4JICAjNUVCMTdGICg5NCwxNzcsMTI3KQkJCQkgICAgICA9PgkxOQkJCiMjIwkyMAl5ZWxsb3dncmVlbgkJICAjODZCODMzICgxMzQsMTg0LDUxKQkJCQkgICAgICA9PgkyMAkJCiMjIwkyMQlsaWdodG1vc3NncmVlbgkjQzVEMjIwICgxOTcsMjEwLDMyKQkJCQkgICAgICA9PgkyMQkJCiMjIwkyMgltb3NzZ3JlZW4JCSAgICAjOUZDMjI4ICgxNTksMTk0LDQwKQkJCQkgICAgICA9PgkyMgkJb3IgTUFGPjAuMjAgb3IgMC42PElORk88MC44CiMjIwkyMwlsaWdodGdyZWVuCSAgCSM3OEIxMTMgKDEyMCwxNzcsMTkpCQkJCSAgICAgID0+CTIzL1gKIyMjCTI0CWdyZWVuCQkJICAgICAgIzQ5QTAxRCAoNzMsMTYwLDI5KQkJCQkgICAgICA9PgkyNC9ZCiMjIwkyNQlncmV5CQkJICAgICAgIzU5NUE1QyAoODksOTAsOTIpCQkJCSAgICAgICAgPT4JMjUvWFkJb3IgTUFGPDAuMDEgb3IgMC4wPElORk88MC4yCiMjIwkyNglsaWdodGdyZXkJCSAgICAjQTJBM0E0CSgxNjIsMTYzLDE2NCkJCQkgICAgICA9PgkyNi9NVAojIyMKIyMjCUFERElUSU9OQUwgQ09MT1JTCiMjIwkyNwltaWRncmV5CQkJI0Q3RDhENwojIyMJMjgJdmVyeWxpZ2h0Z3JleQkjRUNFQ0VDIgojIyMJMjkJd2hpdGUJCQkjRkZGRkZGCiMjIwkzMAlibGFjawkJCSMwMDAwMDAKIyMjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKdWl0aG9mX2NvbG9yID0gYygiI0ZCQjgyMCIsIiNGNTlEMTAiLCIjRTU1NzM4IiwiI0RCMDAzRiIsIiNFMzU0OTMiLCIjRDUyNjdCIiwKICAgICAgICAgICAgICAgICAiI0NDMDA3MSIsIiNBODQ0OEEiLCIjOUEzNDgwIiwiIzhENUI5QSIsIiM3MDUyOTYiLCIjNjg2QUE5IiwKICAgICAgICAgICAgICAgICAiIzYxNzNBRCIsIiM0QzgxQkYiLCIjMkY4QkM5IiwiIzEyOTBEOSIsIiMxMzk2RDgiLCIjMTVBNkMxIiwKICAgICAgICAgICAgICAgICAiIzVFQjE3RiIsIiM4NkI4MzMiLCIjQzVEMjIwIiwiIzlGQzIyOCIsIiM3OEIxMTMiLCIjNDlBMDFEIiwKICAgICAgICAgICAgICAgICAiIzU5NUE1QyIsIiNBMkEzQTQiLCAiI0Q3RDhENyIsICIjRUNFQ0VDIiwgIiNGRkZGRkYiLCAiIzAwMDAwMCIpCgp1aXRob2ZfY29sb3JfbGVnZW5kID0gYygiI0ZCQjgyMCIsICIjRjU5RDEwIiwgIiNFNTU3MzgiLCAiI0RCMDAzRiIsICIjRTM1NDkzIiwKICAgICAgICAgICAgICAgICAgICAgICAgIiNENTI2N0IiLCAiI0NDMDA3MSIsICIjQTg0NDhBIiwgIiM5QTM0ODAiLCAiIzhENUI5QSIsCiAgICAgICAgICAgICAgICAgICAgICAgICIjNzA1Mjk2IiwgIiM2ODZBQTkiLCAiIzYxNzNBRCIsICIjNEM4MUJGIiwgIiMyRjhCQzkiLAogICAgICAgICAgICAgICAgICAgICAgICAiIzEyOTBEOSIsICIjMTM5NkQ4IiwgIiMxNUE2QzEiLCAiIzVFQjE3RiIsICIjODZCODMzIiwKICAgICAgICAgICAgICAgICAgICAgICAgIiNDNUQyMjAiLCAiIzlGQzIyOCIsICIjNzhCMTEzIiwgIiM0OUEwMUQiLCAiIzU5NUE1QyIsCiAgICAgICAgICAgICAgICAgICAgICAgICIjQTJBM0E0IiwgIiNEN0Q4RDciLCAiI0VDRUNFQyIsICIjRkZGRkZGIiwgIiMwMDAwMDAiKQoKI2dncGxvdDIgZGVmYXVsdCBjb2xvciBwYWxldHRlCmdnX2NvbG9yX2h1ZSA8LSBmdW5jdGlvbihuKSB7CiAgaHVlcyA9IHNlcSgxNSwgMzc1LCBsZW5ndGggPSBuICsgMSkKICBoY2woaCA9IGh1ZXMsIGwgPSA2NSwgYyA9IDEwMClbMTpuXQp9CgojIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpgYGAKCgojIEJhY2tncm91bmQKClRoaXMgbm90ZWJvb2sgY29udGFpbnMgYWRkaXRpb25hbCBmaWd1cmVzIG9mIHRoZSBwcm9qZWN0ICJNb25vY3l0ZS1jaGVtb2F0dHJhY3RhbnQgcHJvdGVpbi0xIExldmVscyBpbiBIdW1hbiBBdGhlcm9zY2xlcm9zaXMgQXNzb2NpYXRlIHdpdGggUGxhcXVlIFZ1bG5lcmFiaWxpdHkuIi4KCgoKIyBMb2FkaW5nIGRhdGEKCmBgYHtyIExvYWRpbmcgcHJvamVjdCBkYXRhfQpsb2FkKHBhc3RlMChQUk9KRUNUX2xvYywgIi8iLFRvZGF5LCIuIixQUk9KRUNUTkFNRSwiLm1haW5fYW5hbHlzZXMuUkRhdGEiKSkKYGBgCgoKCiMgQWRkaXRpb25hbCBmaWd1cmVzCgojIyBBZ2UgYW5kIHNleApXZSB3YW50IHRvIGNyZWF0ZSBwZXItYWdlLWdyb3VwIGZpZ3VyZXMuIAoKLSBCb3ggYW5kIFdoaXNrZXIgcGxvdCBmb3IgTUNQLTEgcGxhcXVlIGxldmVscyBieSBzZXguCi0gQm94IGFuZCBXaGlza2VyIHBsb3QgZm9yIE1DUC0xIHBsYXF1ZSBsZXZlbHMgYnkgKHNleCBhbmQpIGFnZSBncm91cCAoPDU1LCA1NS02NCwgNjUtNzQsIDc1LTg0LCA4NSspLgoKCiMjIyBJbnZlcnNlLXJhbmsgdHJhbnNmb3JtZWQgZGF0YQoKYGBge3IgTUNQMSBwZXIgU2V4LCByYW5rZWR9CgojID9nZ3B1YnI6OmdnYm94cGxvdCgpCgojIEdsb2JhbCB0ZXN0CmNvbXBhcmVfbWVhbnMoTUNQMV9wZ19tbF8yMDE1X3JhbmsgfiBHZW5kZXIsICBkYXRhID0gQUVEQi5DRUEsIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3B1YnI6OmdnYm94cGxvdChBRURCLkNFQSwgCiAgICAgICAgICAgICAgICAgIHggPSBjKCJHZW5kZXIiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTVfcmFuayIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gImdlbmRlciIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXVxuKGludmVyc2UtcmFuayB0cmFuc2Zvcm1hdGlvbikiLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJHZW5kZXIiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gYygiI0Q1MjY3QiIsICIjMTI5MEQ5IiksCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGFlcyhncm91cCA9IEdlbmRlciksIGxhYmVsID0gInAuZm9ybWF0IiwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5HZW5kZXIucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKCmBgYAoKIyMjIFJhdyBkYXRhCgpTaW1hbGFybHkgYnV0IG5vdyBmb3IgdGhlIHJhdyBkYXRhIGFzIG1lZGlhbiDCsSBpbnRlcnF1YXJ0aWxlIHJhbmdlLgoKYGBge3IgTUNQMSBwZXIgU2V4fQoKIyA/Z2dwdWJyOjpnZ2JveHBsb3QoKQpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNSB+IEdlbmRlciwgIGRhdGEgPSBBRURCLkNFQSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoIkdlbmRlciIpLAogICAgICAgICAgICAgICAgICB5ID0gIk1DUDFfcGdfbWxfMjAxNSIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gImdlbmRlciIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXVxuKGludmVyc2UtcmFuayB0cmFuc2Zvcm1hdGlvbikiLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJHZW5kZXIiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gYygiI0Q1MjY3QiIsICIjMTI5MEQ5IiksCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGFlcyhncm91cCA9IEdlbmRlciksIGxhYmVsID0gInAuZm9ybWF0IiwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5yYXcuR2VuZGVyLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgoKYGBgCgpgYGB7ciBBZ2VHcm91cHN9CmxpYnJhcnkoZHBseXIpCgpBRURCLkNFQSA8LSBBRURCLkNFQSAlPiUgbXV0YXRlKEFnZUdyb3VwID0gZmFjdG9yKGNhc2Vfd2hlbihBZ2UgPCA1NSB+ICI8NTUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFnZSA+PSA1NSAgJiBBZ2UgPD0gNjQgfiAiNTUtNjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFnZSA+PSA2NSAgJiBBZ2UgPD0gNzQgfiAiNjUtNzQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFnZSA+PSA3NSAgJiBBZ2UgPD0gODQgfiAiNzUtODQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFnZSA+PSA4NSB+ICI4NSsiKSkpIAoKQUVEQi5DRUEgPC0gQUVEQi5DRUEgJT4lIG11dGF0ZShBZ2VHcm91cFNleCA9IGZhY3RvcihjYXNlX3doZW4oQWdlIDwgNTUgJiBHZW5kZXIgPT0gIm1hbGUiIH4gIjw1NSBtYWxlcyIgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFnZSA+PSA1NSAgJiBBZ2UgPD0gNjQgJiBHZW5kZXIgPT0gIm1hbGUifiAiNTUtNjQgbWFsZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFnZSA+PSA2NSAgJiBBZ2UgPD0gNzQgJiBHZW5kZXIgPT0gIm1hbGUifiAiNjUtNzQgbWFsZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFnZSA+PSA3NSAgJiBBZ2UgPD0gODQgJiBHZW5kZXIgPT0gIm1hbGUifiAiNzUtODQgbWFsZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFnZSA+PSA4NSAmIEdlbmRlciA9PSAibWFsZSJ+ICI4NSsgbWFsZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFnZSA8IDU1ICYgR2VuZGVyID09ICJmZW1hbGUiIH4gIjw1NSBmZW1hbGVzIiAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWdlID49IDU1ICAmIEFnZSA8PSA2NCAmIEdlbmRlciA9PSAiZmVtYWxlIn4gIjU1LTY0IGZlbWFsZXMgIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZ2UgPj0gNjUgICYgQWdlIDw9IDc0ICYgR2VuZGVyID09ICJmZW1hbGUifiAiNjUtNzQgZmVtYWxlcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWdlID49IDc1ICAmIEFnZSA8PSA4NCAmIEdlbmRlciA9PSAiZmVtYWxlIn4gIjc1LTg0IGZlbWFsZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFnZSA+PSA4NSAmIEdlbmRlciA9PSAiZmVtYWxlIn4gIjg1KyBmZW1hbGVzIikpKQoKdGFibGUoQUVEQi5DRUEkQWdlR3JvdXAsIEFFREIuQ0VBJEdlbmRlcikKdGFibGUoQUVEQi5DRUEkQWdlR3JvdXBTZXgpCgpgYGAKCk5vdyB3ZSBjYW4gZHJhdyBzb21lIGdyYXBocyBvZiBwbGFxdWUgTUNQMSBsZXZlbHMgcGVyIHNleCBhbmQgYWdlIGdyb3VwLgoKIyMjIEludmVyc2UtcmFuayB0cmFuc2Zvcm1lZCBkYXRhCgpgYGB7ciBNQ1AxIHBlciBBZ2VHcm91cCBwZXIgU2V4LCByYW5rZWR9CgojID9nZ3B1YnI6OmdnYm94cGxvdCgpCgojIEdsb2JhbCB0ZXN0CmNvbXBhcmVfbWVhbnMoTUNQMV9wZ19tbF8yMDE1X3JhbmsgfiBBZ2VHcm91cCwgIGRhdGEgPSBBRURCLkNFQSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoIkFnZUdyb3VwIiksCiAgICAgICAgICAgICAgICAgIHkgPSAiTUNQMV9wZ19tbF8yMDE1X3JhbmsiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJBZ2UgZ3JvdXBzICh5ZWFycykiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF1cbihpbnZlcnNlLXJhbmsgdHJhbnNmb3JtYXRpb24pIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiQWdlR3JvdXAiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gIm5wZyIsCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGFlcyhncm91cCA9IEFnZUdyb3VwKSwgbGFiZWwgPSAicC5mb3JtYXQiLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLkFnZUdyb3VwLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNV9yYW5rIH4gQWdlR3JvdXAsIGdyb3VwLmJ5ID0gIkdlbmRlciIsIGRhdGEgPSBBRURCLkNFQSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoIkFnZUdyb3VwIiksCiAgICAgICAgICAgICAgICAgIHkgPSAiTUNQMV9wZ19tbF8yMDE1X3JhbmsiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJBZ2UgZ3JvdXBzICh5ZWFycykgcGVyIGdlbmRlciIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXVxuKGludmVyc2UtcmFuayB0cmFuc2Zvcm1hdGlvbikiLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJHZW5kZXIiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gYygiI0Q1MjY3QiIsICIjMTI5MEQ5IiksCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiLAogICAgICAgICAgICAgICAgICBnZ3RoZW1uZSA9IHRoZW1lX21pbmltYWwoKSkgKwogIHN0YXRfY29tcGFyZV9tZWFucyhhZXMoZ3JvdXAgPSBHZW5kZXIpLCBsYWJlbCA9ICJwLmZvcm1hdCIsIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWUuQWdlR3JvdXBfcGVyR2VuZGVyLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCmBgYAoKIyMjIFJhdyBkYXRhCgpTaW1hbGFybHkgYnV0IG5vdyBmb3IgdGhlIHJhdyBkYXRhIGFzIG1lZGlhbiDCsSBpbnRlcnF1YXJ0aWxlIHJhbmdlLgoKYGBge3IgTUNQMSBwZXIgQWdlR3JvdXAgcGVyIFNleH0KCiMgP2dncHVicjo6Z2dib3hwbG90KCkKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTUgfiBBZ2VHcm91cCwgIGRhdGEgPSBBRURCLkNFQSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoIkFnZUdyb3VwIiksCiAgICAgICAgICAgICAgICAgIHkgPSAiTUNQMV9wZ19tbF8yMDE1IiwgCiAgICAgICAgICAgICAgICAgIHhsYWIgPSAiQWdlIGdyb3VwcyAoeWVhcnMpIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiQWdlR3JvdXAiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gIm5wZyIsCiAgICAgICAgICAgICAgICAgICMgYWRkID0gIm1lZGlhbl9pcXIiKQogICAgICAgICAgICAgICAgICBhZGQgPSBjKCJtZWRpYW5faXFyIiwgImppdHRlciIpKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGFlcyhncm91cCA9IEFnZUdyb3VwKSwgbGFiZWwgPSAicC5mb3JtYXQiLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLnJhdy5BZ2VHcm91cC5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTUgfiBBZ2VHcm91cCwgZ3JvdXAuYnkgPSAiR2VuZGVyIiwgZGF0YSA9IEFFREIuQ0VBLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dwdWJyOjpnZ2JveHBsb3QoQUVEQi5DRUEsIAogICAgICAgICAgICAgICAgICB4ID0gYygiQWdlR3JvdXAiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTUiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJBZ2UgZ3JvdXBzICh5ZWFycykgcGVyIGdlbmRlciIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXSIsCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIkdlbmRlciIsCiAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSBjKCIjRDUyNjdCIiwgIiMxMjkwRDkiKSwKICAgICAgICAgICAgICAgICAgIyBhZGQgPSAibWVkaWFuX2lxciIpCiAgICAgICAgICAgICAgICAgIGFkZCA9IGMoIm1lZGlhbl9pcXIiLCAiaml0dGVyIikpICsKICBzdGF0X2NvbXBhcmVfbWVhbnMoYWVzKGdyb3VwID0gR2VuZGVyKSwgbGFiZWwgPSAicC5mb3JtYXQiLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLnJhdy5BZ2VHcm91cF9wZXJHZW5kZXIucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKYGBgCgoKIyMgSHlwZXJ0ZW5zaW9uICYgYmxvb2QgcHJlc3N1cmUKV2Ugd2FudCB0byBjcmVhdGUgZmlndXJlcyBvZiBNQ1AxIGxldmVscyBzdHJhdGlmaWVkIGJ5IGh5cGVydGVuc2lvbi9ibG9vZCBwcmVzc3VyZSwgYW5kIHVzZSBvZiBhbnRpLWh5cGVydGVuc2l2ZSBkcnVncy4gCgotIEJveCBhbmQgV2hpc2tlciBwbG90IGZvciBNQ1AtMSBwbGFxdWUgbGV2ZWxzIGJ5IGh5cGVydGVuc2lvbiBncm91cCAobm8sIHllcykKLSBCb3ggYW5kIFdoaXNrZXIgcGxvdCBmb3IgTUNQLTEgcGxhcXVlIGxldmVscyBieSBzeXN0b2xpYyBibG9vZCBwcmVzc3VyZSBncm91cCAoPDEyMCwgMTIwLTEzOSwgMTQwLTE1OSwxNjArKQoKCmBgYHtyIEJsb29kUHJlc3N1cmV9CmxpYnJhcnkoZHBseXIpCgpBRURCLkNFQSA8LSBBRURCLkNFQSAlPiUgbXV0YXRlKFNCUEdyb3VwID0gZmFjdG9yKGNhc2Vfd2hlbihzeXN0b2xpYyA8IDEyMCB+ICI8MTIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXN0b2xpYyA+PSAxMjAgICYgc3lzdG9saWMgPD0gMTM5IH4gIjEyMC0xMzkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5c3RvbGljID49IDE0MCAgJiBzeXN0b2xpYyA8PSAxNTkgfiAiMTQwLTE1OSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3lzdG9saWMgPj0gMTYwIH4gIjE2MCsiKSkpIAoKdGFibGUoQUVEQi5DRUEkU0JQR3JvdXAsIEFFREIuQ0VBJEdlbmRlcikKCmBgYAoKTm93IHdlIGNhbiBkcmF3IHNvbWUgZ3JhcGhzIG9mIHBsYXF1ZSBNQ1AxIGxldmVscyBwZXIgc2V4IGFuZCBoeXBlcnRlbnNpb24vYmxvb2QgcHJlc3N1cmUgZ3JvdXAuCgojIyMgSW52ZXJzZS1yYW5rIHRyYW5zZm9ybWVkIGRhdGEKCmBgYHtyIE1DUDEgcGVyIEJsb29kUHJlc3N1cmUgcGVyIFNleCwgcmFua2VkfQpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNV9yYW5rIH4gU0JQR3JvdXAsIGRhdGEgPSBBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShTQlBHcm91cCkpLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dwdWJyOjpnZ2JveHBsb3QoQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoU0JQR3JvdXApKSwgCiAgICAgICAgICAgICAgICAgIHggPSBjKCJTQlBHcm91cCIpLAogICAgICAgICAgICAgICAgICB5ID0gIk1DUDFfcGdfbWxfMjAxNV9yYW5rIiwgCiAgICAgICAgICAgICAgICAgIHhsYWIgPSAiU3lzdG9saWMgYmxvb2QgcHJlc3N1cmUgKG1tSGcpIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdXG4oaW52ZXJzZS1yYW5rIHRyYW5zZm9ybWF0aW9uKSIsCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIlNCUEdyb3VwIiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9ICJucGciLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIikgKwogIHN0YXRfY29tcGFyZV9tZWFucyhhZXMoZ3JvdXAgPSBTQlBHcm91cCksIGxhYmVsID0gInAuZm9ybWF0IiwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5TQlBHcm91cC5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTVfcmFuayB+IEh5cGVydGVuc2lvbi5zZWxmcmVwb3J0LCBkYXRhID0gQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoSHlwZXJ0ZW5zaW9uLnNlbGZyZXBvcnQpKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKEh5cGVydGVuc2lvbi5zZWxmcmVwb3J0KSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiSHlwZXJ0ZW5zaW9uLnNlbGZyZXBvcnQiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTVfcmFuayIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIlNlbGYtcmVwb3J0ZWQgaHlwZXJ0ZW5zaW9uIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdXG4oaW52ZXJzZS1yYW5rIHRyYW5zZm9ybWF0aW9uKSIsCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIkh5cGVydGVuc2lvbi5zZWxmcmVwb3J0IiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9ICJucGciLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIikgKwogIHN0YXRfY29tcGFyZV9tZWFucyhhZXMoZ3JvdXAgPSBIeXBlcnRlbnNpb24uc2VsZnJlcG9ydCksIGxhYmVsID0gInAuZm9ybWF0IiwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5IeXBlcnRlbnNpb24ucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKCmNvbXBhcmVfbWVhbnMoTUNQMV9wZ19tbF8yMDE1X3JhbmsgfiBIeXBlcnRlbnNpb24uZHJ1Z3MsIGRhdGEgPSBBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShIeXBlcnRlbnNpb24uZHJ1Z3MpKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKEh5cGVydGVuc2lvbi5kcnVncykpLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoIkh5cGVydGVuc2lvbi5kcnVncyIpLAogICAgICAgICAgICAgICAgICB5ID0gIk1DUDFfcGdfbWxfMjAxNV9yYW5rIiwgCiAgICAgICAgICAgICAgICAgIHhsYWIgPSAiSHlwZXJ0ZW5zaW9uIG1lZGljYXRpb24gdXNlIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdXG4oaW52ZXJzZS1yYW5rIHRyYW5zZm9ybWF0aW9uKSIsCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIkh5cGVydGVuc2lvbi5kcnVncyIsCiAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSAibnBnIiwKICAgICAgICAgICAgICAgICAgYWRkID0gImppdHRlciIpICsKICBzdGF0X2NvbXBhcmVfbWVhbnMoYWVzKGdyb3VwID0gSHlwZXJ0ZW5zaW9uLmRydWdzKSwgbGFiZWwgPSAicC5mb3JtYXQiLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLkh5cGVydGVuc2lvbkRydWdzLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgoKCmNvbXBhcmVfbWVhbnMoTUNQMV9wZ19tbF8yMDE1X3JhbmsgfiBTQlBHcm91cCwgZ3JvdXAuYnkgPSAiR2VuZGVyIiwgZGF0YSA9IEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKFNCUEdyb3VwKSksIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3B1YnI6OmdnYm94cGxvdChBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShTQlBHcm91cCkpLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoIlNCUEdyb3VwIiksCiAgICAgICAgICAgICAgICAgIHkgPSAiTUNQMV9wZ19tbF8yMDE1X3JhbmsiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJTeXN0b2xpYyBibG9vZCBwcmVzc3VyZSAobW1IZykgcGVyIGdlbmRlciIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXVxuKGludmVyc2UtcmFuayB0cmFuc2Zvcm1hdGlvbikiLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJHZW5kZXIiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gYygiI0Q1MjY3QiIsICIjMTI5MEQ5IiksCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGFlcyhncm91cCA9IEdlbmRlciksIGxhYmVsID0gInAuZm9ybWF0IiwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5TQlBHcm91cF9ieUdlbmRlci5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTVfcmFuayB+IEh5cGVydGVuc2lvbi5zZWxmcmVwb3J0LCBncm91cC5ieSA9ICJHZW5kZXIiLCBkYXRhID0gQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoSHlwZXJ0ZW5zaW9uLnNlbGZyZXBvcnQpKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKEh5cGVydGVuc2lvbi5zZWxmcmVwb3J0KSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiSHlwZXJ0ZW5zaW9uLnNlbGZyZXBvcnQiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTVfcmFuayIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIlNlbGYtcmVwb3J0ZWQgaHlwZXJ0ZW5zaW9uIHBlciBnZW5kZXIiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF1cbihpbnZlcnNlLXJhbmsgdHJhbnNmb3JtYXRpb24pIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiR2VuZGVyIiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9IGMoIiNENTI2N0IiLCAiIzEyOTBEOSIpLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIikgKwogIHN0YXRfY29tcGFyZV9tZWFucyhhZXMoZ3JvdXAgPSBHZW5kZXIpLCBsYWJlbCA9ICJwLmZvcm1hdCIsIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWUuSHlwZXJ0ZW5zaW9uX2J5R2VuZGVyLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNV9yYW5rIH4gSHlwZXJ0ZW5zaW9uLmRydWdzLCBncm91cC5ieSA9ICJHZW5kZXIiLCBkYXRhID0gQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoSHlwZXJ0ZW5zaW9uLmRydWdzKSksIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3B1YnI6OmdnYm94cGxvdChBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShIeXBlcnRlbnNpb24uZHJ1Z3MpKSwgCiAgICAgICAgICAgICAgICAgIHggPSBjKCJIeXBlcnRlbnNpb24uZHJ1Z3MiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTVfcmFuayIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIkh5cGVydGVuc2lvbiBtZWRpY2F0aW9uIHVzZSBwZXIgZ2VuZGVyIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdXG4oaW52ZXJzZS1yYW5rIHRyYW5zZm9ybWF0aW9uKSIsCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIkdlbmRlciIsCiAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSBjKCIjRDUyNjdCIiwgIiMxMjkwRDkiKSwKICAgICAgICAgICAgICAgICAgYWRkID0gImppdHRlciIpICsKICBzdGF0X2NvbXBhcmVfbWVhbnMoYWVzKGdyb3VwID0gR2VuZGVyKSwgbGFiZWwgPSAicC5mb3JtYXQiLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLkh5cGVydGVuc2lvbi5kcnVnc19ieUdlbmRlci5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKCgpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNV9yYW5rIH4gU0JQR3JvdXAsIGdyb3VwLmJ5ID0gIkh5cGVydGVuc2lvbi5kcnVncyIsIGRhdGEgPSBBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShTQlBHcm91cCkgJiAhaXMubmEoSHlwZXJ0ZW5zaW9uLmRydWdzKSksIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3B1YnI6OmdnYm94cGxvdChBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShTQlBHcm91cCkgJiAhaXMubmEoSHlwZXJ0ZW5zaW9uLmRydWdzKSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiU0JQR3JvdXAiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTVfcmFuayIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIlN5c3RvbGljIGJsb29kIHByZXNzdXJlIChtbUhnKSBieSBtZWRpY2F0aW9uIHVzZSIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXVxuKGludmVyc2UtcmFuayB0cmFuc2Zvcm1hdGlvbikiLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJIeXBlcnRlbnNpb24uZHJ1Z3MiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gYygiIzQ5QTAxRCIsICIjMTI5MEQ5IiksCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGFlcyhncm91cCA9IEh5cGVydGVuc2lvbi5kcnVncyksIGxhYmVsID0gInAuZm9ybWF0IiwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5TQlBHcm91cF9ieUh5cGVydGVuc2lvbkRydWdzLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNV9yYW5rIH4gSHlwZXJ0ZW5zaW9uLnNlbGZyZXBvcnQsIGdyb3VwLmJ5ID0gIkh5cGVydGVuc2lvbi5kcnVncyIsIGRhdGEgPSBBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShIeXBlcnRlbnNpb24uc2VsZnJlcG9ydCkgJiAhaXMubmEoSHlwZXJ0ZW5zaW9uLmRydWdzKSksIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3B1YnI6OmdnYm94cGxvdChBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShIeXBlcnRlbnNpb24uc2VsZnJlcG9ydCkgJiAhaXMubmEoSHlwZXJ0ZW5zaW9uLmRydWdzKSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiSHlwZXJ0ZW5zaW9uLnNlbGZyZXBvcnQiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTVfcmFuayIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIlNlbGYtcmVwb3J0ZWQgaHlwZXJ0ZW5zaW9uIGJ5IG1lZGljYXRpb24gdXNlIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdXG4oaW52ZXJzZS1yYW5rIHRyYW5zZm9ybWF0aW9uKSIsCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIkh5cGVydGVuc2lvbi5kcnVncyIsCiAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSBjKCIjNDlBMDFEIiwgIiMxMjkwRDkiKSwKICAgICAgICAgICAgICAgICAgYWRkID0gImppdHRlciIpICsKICBzdGF0X2NvbXBhcmVfbWVhbnMoYWVzKGdyb3VwID0gSHlwZXJ0ZW5zaW9uLmRydWdzKSwgbGFiZWwgPSAicC5mb3JtYXQiLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLkh5cGVydGVuc2lvbi5zZWxmcmVwb3J0X2J5SHlwZXJ0ZW5zaW9uRHJ1Z3MucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKCgpgYGAKCgojIyMgUmF3IGRhdGEKClNpbWFsYXJseSBidXQgbm93IGZvciB0aGUgcmF3IGRhdGEgYXMgbWVkaWFuIMKxIGludGVycXVhcnRpbGUgcmFuZ2UuCgoKYGBge3IgTUNQMSBwZXIgQmxvb2RQcmVzc3VyZSBwZXIgU2V4fQpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNSB+IFNCUEdyb3VwLCBkYXRhID0gQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoU0JQR3JvdXApKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKFNCUEdyb3VwKSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiU0JQR3JvdXAiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTUiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJTeXN0b2xpYyBibG9vZCBwcmVzc3VyZSAobW1IZykiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF0iLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJTQlBHcm91cCIsCiAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSAibnBnIiwKICAgICAgICAgICAgICAgICAgYWRkID0gImppdHRlciIpICsKICBzdGF0X2NvbXBhcmVfbWVhbnMoYWVzKGdyb3VwID0gU0JQR3JvdXApLCBsYWJlbCA9ICJwLmZvcm1hdCIsIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWUucmF3LlNCUEdyb3VwLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNSB+IEh5cGVydGVuc2lvbi5zZWxmcmVwb3J0LCBkYXRhID0gQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoSHlwZXJ0ZW5zaW9uLnNlbGZyZXBvcnQpKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKEh5cGVydGVuc2lvbi5zZWxmcmVwb3J0KSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiSHlwZXJ0ZW5zaW9uLnNlbGZyZXBvcnQiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTUiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJTZWxmLXJlcG9ydGVkIGh5cGVydGVuc2lvbiIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXSIsCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIkh5cGVydGVuc2lvbi5zZWxmcmVwb3J0IiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9ICJucGciLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIikgKwogIHN0YXRfY29tcGFyZV9tZWFucyhhZXMoZ3JvdXAgPSBIeXBlcnRlbnNpb24uc2VsZnJlcG9ydCksIGxhYmVsID0gInAuZm9ybWF0IiwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5yYXcuSHlwZXJ0ZW5zaW9uLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNSB+IEh5cGVydGVuc2lvbi5kcnVncywgZGF0YSA9IEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKEh5cGVydGVuc2lvbi5kcnVncykpLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dwdWJyOjpnZ2JveHBsb3QoQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoSHlwZXJ0ZW5zaW9uLmRydWdzKSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiSHlwZXJ0ZW5zaW9uLmRydWdzIiksCiAgICAgICAgICAgICAgICAgIHkgPSAiTUNQMV9wZ19tbF8yMDE1IiwgCiAgICAgICAgICAgICAgICAgIHhsYWIgPSAiSHlwZXJ0ZW5zaW9uIG1lZGljYXRpb24gdXNlIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiSHlwZXJ0ZW5zaW9uLmRydWdzIiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9ICJucGciLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIikgKwogIHN0YXRfY29tcGFyZV9tZWFucyhhZXMoZ3JvdXAgPSBIeXBlcnRlbnNpb24uZHJ1Z3MpLCBsYWJlbCA9ICJwLmZvcm1hdCIsIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWUucmF3Lkh5cGVydGVuc2lvbkRydWdzLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgoKCmNvbXBhcmVfbWVhbnMoTUNQMV9wZ19tbF8yMDE1IH4gU0JQR3JvdXAsIGdyb3VwLmJ5ID0gIkdlbmRlciIsIGRhdGEgPSBBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShTQlBHcm91cCkpLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dwdWJyOjpnZ2JveHBsb3QoQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoU0JQR3JvdXApKSwgCiAgICAgICAgICAgICAgICAgIHggPSBjKCJTQlBHcm91cCIpLAogICAgICAgICAgICAgICAgICB5ID0gIk1DUDFfcGdfbWxfMjAxNSIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIlN5c3RvbGljIGJsb29kIHByZXNzdXJlIChtbUhnKSBwZXIgZ2VuZGVyIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiR2VuZGVyIiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9IGMoIiNENTI2N0IiLCAiIzEyOTBEOSIpLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIikgKwogIHN0YXRfY29tcGFyZV9tZWFucyhhZXMoZ3JvdXAgPSBHZW5kZXIpLCBsYWJlbCA9ICJwLmZvcm1hdCIsIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWUucmF3LlNCUEdyb3VwX2J5R2VuZGVyLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNSB+IEh5cGVydGVuc2lvbi5zZWxmcmVwb3J0LCBncm91cC5ieSA9ICJHZW5kZXIiLCBkYXRhID0gQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoSHlwZXJ0ZW5zaW9uLnNlbGZyZXBvcnQpKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKEh5cGVydGVuc2lvbi5zZWxmcmVwb3J0KSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiSHlwZXJ0ZW5zaW9uLnNlbGZyZXBvcnQiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTUiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJTZWxmLXJlcG9ydGVkIGh5cGVydGVuc2lvbiBwZXIgZ2VuZGVyIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiR2VuZGVyIiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9IGMoIiNENTI2N0IiLCAiIzEyOTBEOSIpLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIikgKwogIHN0YXRfY29tcGFyZV9tZWFucyhhZXMoZ3JvdXAgPSBHZW5kZXIpLCBsYWJlbCA9ICJwLmZvcm1hdCIsIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWUucmF3Lkh5cGVydGVuc2lvbl9ieUdlbmRlci5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTUgfiBIeXBlcnRlbnNpb24uZHJ1Z3MsIGdyb3VwLmJ5ID0gIkdlbmRlciIsIGRhdGEgPSBBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShIeXBlcnRlbnNpb24uZHJ1Z3MpKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKEh5cGVydGVuc2lvbi5kcnVncykpLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoIkh5cGVydGVuc2lvbi5kcnVncyIpLAogICAgICAgICAgICAgICAgICB5ID0gIk1DUDFfcGdfbWxfMjAxNSIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIkh5cGVydGVuc2lvbiBtZWRpY2F0aW9uIHVzZSBwZXIgZ2VuZGVyIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiR2VuZGVyIiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9IGMoIiNENTI2N0IiLCAiIzEyOTBEOSIpLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIikgKwogIHN0YXRfY29tcGFyZV9tZWFucyhhZXMoZ3JvdXAgPSBHZW5kZXIpLCBsYWJlbCA9ICJwLmZvcm1hdCIsIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWUucmF3Lkh5cGVydGVuc2lvbi5kcnVnc19ieUdlbmRlci5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKCgpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNSB+IFNCUEdyb3VwLCBncm91cC5ieSA9ICJIeXBlcnRlbnNpb24uZHJ1Z3MiLCBkYXRhID0gQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoU0JQR3JvdXApICYgIWlzLm5hKEh5cGVydGVuc2lvbi5kcnVncykpLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dwdWJyOjpnZ2JveHBsb3QoQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoU0JQR3JvdXApICYgIWlzLm5hKEh5cGVydGVuc2lvbi5kcnVncykpLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoIlNCUEdyb3VwIiksCiAgICAgICAgICAgICAgICAgIHkgPSAiTUNQMV9wZ19tbF8yMDE1IiwgCiAgICAgICAgICAgICAgICAgIHhsYWIgPSAiU3lzdG9saWMgYmxvb2QgcHJlc3N1cmUgKG1tSGcpIGJ5IG1lZGljYXRpb24gdXNlIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiSHlwZXJ0ZW5zaW9uLmRydWdzIiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9IGMoIiM0OUEwMUQiLCAiIzEyOTBEOSIpLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIikgKwogIHN0YXRfY29tcGFyZV9tZWFucyhhZXMoZ3JvdXAgPSBIeXBlcnRlbnNpb24uZHJ1Z3MpLCBsYWJlbCA9ICJwLmZvcm1hdCIsIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWUucmF3LlNCUEdyb3VwX2J5SHlwZXJ0ZW5zaW9uRHJ1Z3MucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKCmNvbXBhcmVfbWVhbnMoTUNQMV9wZ19tbF8yMDE1IH4gSHlwZXJ0ZW5zaW9uLnNlbGZyZXBvcnQsIGdyb3VwLmJ5ID0gIkh5cGVydGVuc2lvbi5kcnVncyIsIGRhdGEgPSBBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShIeXBlcnRlbnNpb24uc2VsZnJlcG9ydCkgJiAhaXMubmEoSHlwZXJ0ZW5zaW9uLmRydWdzKSksIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3B1YnI6OmdnYm94cGxvdChBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShIeXBlcnRlbnNpb24uc2VsZnJlcG9ydCkgJiAhaXMubmEoSHlwZXJ0ZW5zaW9uLmRydWdzKSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiSHlwZXJ0ZW5zaW9uLnNlbGZyZXBvcnQiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTUiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJTZWxmLXJlcG9ydGVkIGh5cGVydGVuc2lvbiBwZXIgbWVkaWNhdGlvbiB1c2UiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF0iLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJIeXBlcnRlbnNpb24uZHJ1Z3MiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gYygiIzQ5QTAxRCIsICIjMTI5MEQ5IiksCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGFlcyhncm91cCA9IEh5cGVydGVuc2lvbi5kcnVncyksIGxhYmVsID0gInAuZm9ybWF0IiwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5yYXcuSHlwZXJ0ZW5zaW9uLnNlbGZyZXBvcnRfYnlIeXBlcnRlbnNpb25EcnVncy5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKCgoKYGBgCgoKIyMgSHlwZXJjaG9sZXN0ZXJvbGVtaWEgJiBMREwgbGV2ZWxzCldlIHdhbnQgdG8gY3JlYXRlIGZpZ3VyZXMgb2YgTUNQMSBsZXZlbHMgc3RyYXRpZmllZCBieSBoeXBlcmNob2xlc3Rlcm9sZW1pYS9MREwtbGV2ZWxzLCBhbmQgdXNlIG9mIGxpcGlkLWxvd2VyaW5nIGRydWdzLiAKCi0gQm94IGFuZCBXaGlza2VyIHBsb3QgZm9yIE1DUC0xIHBsYXF1ZSBsZXZlbHMgYnkgaHlwZXJjaG9sZXN0ZXJvbGVtaWEgKGByaXNrNjE0YCkgZ3JvdXAgKG5vLCB5ZXMpCi0gQm94IGFuZCBXaGlza2VyIHBsb3QgZm9yIE1DUC0xIHBsYXF1ZSBsZXZlbHMgYnkgbGlwaWQtbG93ZXJpbmcgZHJ1Z3MgZ3JvdXAgKG5vLCB5ZXMpCi0gQm94IGFuZCBXaGlza2VyIHBsb3QgZm9yIE1DUC0xIHBsYXF1ZSBsZXZlbHMgYnkgTERMLWxldmVscyAobW1vbC9MKSBncm91cCAoPDEwMCwgMTAwLTEyOSwgMTMwLTE1OSwgMTYwLTE4OSwgMTkwKykKCmBgYHtyIExETEdyb3Vwc30KbGlicmFyeShkcGx5cikKCkFFREIuQ0VBIDwtIEFFREIuQ0VBICU+JSBtdXRhdGUoTERMR3JvdXAgPSBmYWN0b3IoY2FzZV93aGVuKExETF9maW5hbENVIDwgMTAwIH4gIjwxMDAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExETF9maW5hbENVID49IDEwMCAgJiBMRExfZmluYWxDVSA8PSAxMjkgfiAiMTAwLTEyOSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTERMX2ZpbmFsQ1UgPj0gMTMwICAmIExETF9maW5hbENVIDw9IDE1OSB+ICIxMzAtMTU5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMRExfZmluYWxDVSA+PSAxNjAgICYgTERMX2ZpbmFsQ1UgPD0gMTg5IH4gIjE2MC0xODkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExETF9maW5hbENVID49IDE5MCB+ICIxOTArIikpKSAKCgp0YWJsZShBRURCLkNFQSRMRExHcm91cCwgQUVEQi5DRUEkR2VuZGVyKQoKYGBgCgoKYGBge3IgRml4IEh5cGVyY2hvbGVzdGVyb2xlbWlhLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQpyZXF1aXJlKHNqbGFiZWxsZWQpCkFFREIuQ0VBJHJpc2s2MTQgPC0gdG9fZmFjdG9yKEFFREIuQ0VBJHJpc2s2MTQpCgojIEZpeCBwbGFxdWVwaGVub3R5cGVzCmF0dGFjaChBRURCLkNFQSkKQUVEQi5DRUFbLCJIeXBlcmNob2xlc3Rlcm9sZW1pYSJdIDwtIE5BCkFFREIuQ0VBJEh5cGVyY2hvbGVzdGVyb2xlbWlhW3Jpc2s2MTQgPT0gIm1pc3NpbmcgdmFsdWUiXSA8LSBOQQpBRURCLkNFQSRIeXBlcmNob2xlc3Rlcm9sZW1pYVtyaXNrNjE0ID09IC05OTldIDwtIE5BCkFFREIuQ0VBJEh5cGVyY2hvbGVzdGVyb2xlbWlhW3Jpc2s2MTQgPT0gIm5vIl0gPC0gIm5vIgpBRURCLkNFQSRIeXBlcmNob2xlc3Rlcm9sZW1pYVtyaXNrNjE0ID09ICJ5ZXMiXSA8LSAieWVzIgpkZXRhY2goQUVEQi5DRUEpCgp0YWJsZShBRURCLkNFQSRyaXNrNjE0LCBBRURCLkNFQSRIeXBlcmNob2xlc3Rlcm9sZW1pYSkKCiMgQUVEQi50ZW1wIDwtIHN1YnNldChBRURCLCAgc2VsZWN0ID0gYygiU1RVRFlfTlVNQkVSIiwgIlVQSUQiLCAiQWdlIiwgIkdlbmRlciIsICJIb3NwaXRhbCIsICJBcnRlcnlfc3VtbWFyeSIsICJyaXNrNjE0IiwgIkh5cGVyY2hvbGVzdGVyb2xlbWlhIikpCiMgcmVxdWlyZShsYWJlbGxlZCkKIyBBRURCLnRlbXAkR2VuZGVyIDwtIHRvX2ZhY3RvcihBRURCLnRlbXAkR2VuZGVyKQojIEFFREIudGVtcCRIb3NwaXRhbCA8LSB0b19mYWN0b3IoQUVEQi50ZW1wJEhvc3BpdGFsKQojIEFFREIudGVtcCRBcnRlcnlfc3VtbWFyeSA8LSB0b19mYWN0b3IoQUVEQi50ZW1wJEFydGVyeV9zdW1tYXJ5KQojIAojIERUOjpkYXRhdGFibGUoQUVEQi50ZW1wWzE6MTAsXSwgY2FwdGlvbiA9ICJFeGNlcnB0IG9mIHRoZSB3aG9sZSBBRURCLiIsIHJvd25hbWVzID0gRkFMU0UpCiMgCiMgcm0oQUVEQi50ZW1wKQoKYGBgCgpOb3cgd2UgY2FuIGRyYXcgc29tZSBncmFwaHMgb2YgcGxhcXVlIE1DUDEgbGV2ZWxzIHBlciBzZXggYW5kIGh5cGVyY2hvbGVzdGVyb2xlbWlhL0xETC1sZXZlbHMgZ3JvdXAsIGFzIHdlbGwgYXMgc3RyYXRpZmllZCBieSBsaXBpZC1sb3dlcmluZyBkcnVncyB1c2Vycy4KCiMjIyBJbnZlcnNlLXJhbmsgdHJhbnNmb3JtZWQgZGF0YQoKYGBge3IgTUNQMSBwZXIgSHlwZXJjaG9sZXN0ZXJvbGVtaWEgcGVyIFNleCwgcmFua2VkfQpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNV9yYW5rIH4gTERMR3JvdXAsIGRhdGEgPSBBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShMRExHcm91cCkpLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dwdWJyOjpnZ2JveHBsb3QoQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoTERMR3JvdXApKSwgCiAgICAgICAgICAgICAgICAgIHggPSBjKCJMRExHcm91cCIpLAogICAgICAgICAgICAgICAgICB5ID0gIk1DUDFfcGdfbWxfMjAxNV9yYW5rIiwgCiAgICAgICAgICAgICAgICAgIHhsYWIgPSAiTERMIChtZy9kTCkgcGVyIGdlbmRlciIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXVxuKGludmVyc2UtcmFuayB0cmFuc2Zvcm1hdGlvbikiLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJMRExHcm91cCIsCiAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSAibnBnIiwKICAgICAgICAgICAgICAgICAgYWRkID0gImppdHRlciIpICsKICBzdGF0X2NvbXBhcmVfbWVhbnMobGFiZWwgPSAicC5mb3JtYXQiLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLkxETEdyb3Vwcy5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTVfcmFuayB+IExETEdyb3VwLCBncm91cC5ieSA9ICJHZW5kZXIiLCBkYXRhID0gQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoTERMR3JvdXApKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKExETEdyb3VwKSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiTERMR3JvdXAiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTVfcmFuayIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIkxETCAobWcvZEwpIHBlciBnZW5kZXIiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF1cbihpbnZlcnNlLXJhbmsgdHJhbnNmb3JtYXRpb24pIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiR2VuZGVyIiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9IGMoIiNENTI2N0IiLCAiIzEyOTBEOSIpLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIikgKwogIHN0YXRfY29tcGFyZV9tZWFucyhhZXMoZ3JvdXAgPSBHZW5kZXIpLCBsYWJlbCA9ICJwLmZvcm1hdCIsIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWUuTERMR3JvdXBzX2J5R2VuZGVyLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgoKCmNvbXBhcmVfbWVhbnMoTUNQMV9wZ19tbF8yMDE1X3JhbmsgfiBIeXBlcmNob2xlc3Rlcm9sZW1pYSwgZGF0YSA9IEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKEh5cGVyY2hvbGVzdGVyb2xlbWlhKSksIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3B1YnI6OmdnYm94cGxvdChBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShIeXBlcmNob2xlc3Rlcm9sZW1pYSkpLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoIkh5cGVyY2hvbGVzdGVyb2xlbWlhIiksCiAgICAgICAgICAgICAgICAgIHkgPSAiTUNQMV9wZ19tbF8yMDE1X3JhbmsiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJEaWFnbm9zZWQgaHlwZXJjaG9sZXN0ZXJvbGVtaWEiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF1cbihpbnZlcnNlLXJhbmsgdHJhbnNmb3JtYXRpb24pIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiSHlwZXJjaG9sZXN0ZXJvbGVtaWEiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gIm5wZyIsCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGxhYmVsID0gInAuZm9ybWF0IiwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5IeXBlcmNob2xlc3Rlcm9sZW1pYS5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTVfcmFuayB+IEh5cGVyY2hvbGVzdGVyb2xlbWlhLCBncm91cC5ieSA9ICJHZW5kZXIiLCBkYXRhID0gQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoSHlwZXJjaG9sZXN0ZXJvbGVtaWEpKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKEh5cGVyY2hvbGVzdGVyb2xlbWlhKSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiSHlwZXJjaG9sZXN0ZXJvbGVtaWEiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTVfcmFuayIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIkRpYWdub3NlZCBoeXBlcmNob2xlc3Rlcm9sZW1pYSBwZXIgZ2VuZGVyIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdXG4oaW52ZXJzZS1yYW5rIHRyYW5zZm9ybWF0aW9uKSIsCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIkdlbmRlciIsCiAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSBjKCIjRDUyNjdCIiwgIiMxMjkwRDkiKSwKICAgICAgICAgICAgICAgICAgYWRkID0gImppdHRlciIpICsKICBzdGF0X2NvbXBhcmVfbWVhbnMoYWVzKGdyb3VwID0gR2VuZGVyKSwgbGFiZWwgPSAicC5mb3JtYXQiLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLkh5cGVyY2hvbGVzdGVyb2xlbWlhX2J5R2VuZGVyLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgoKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTVfcmFuayB+IE1lZC5TdGF0aW4uTExELCBkYXRhID0gQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoTWVkLlN0YXRpbi5MTEQpKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKE1lZC5TdGF0aW4uTExEKSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiTWVkLlN0YXRpbi5MTEQiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTVfcmFuayIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIkxpcGlkLWxvd2VyaW5nIGRydWcgdXNlIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdXG4oaW52ZXJzZS1yYW5rIHRyYW5zZm9ybWF0aW9uKSIsCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIk1lZC5TdGF0aW4uTExEIiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9ICJucGciLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIikgKwogIHN0YXRfY29tcGFyZV9tZWFucyhsYWJlbCA9ICJwLmZvcm1hdCIsIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWUuTWVkLlN0YXRpbi5MTEQucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKCmNvbXBhcmVfbWVhbnMoTUNQMV9wZ19tbF8yMDE1X3JhbmsgfiBNZWQuU3RhdGluLkxMRCwgZ3JvdXAuYnkgPSAiR2VuZGVyIiwgZGF0YSA9IEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKE1lZC5TdGF0aW4uTExEKSksIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3B1YnI6OmdnYm94cGxvdChBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShNZWQuU3RhdGluLkxMRCkpLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoIk1lZC5TdGF0aW4uTExEIiksCiAgICAgICAgICAgICAgICAgIHkgPSAiTUNQMV9wZ19tbF8yMDE1X3JhbmsiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJMaXBpZC1sb3dlcmluZyBkcnVnIHVzZSBwZXIgZ2VuZGVyIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdXG4oaW52ZXJzZS1yYW5rIHRyYW5zZm9ybWF0aW9uKSIsCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIkdlbmRlciIsCiAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSBjKCIjRDUyNjdCIiwgIiMxMjkwRDkiKSwKICAgICAgICAgICAgICAgICAgYWRkID0gImppdHRlciIpICsKICBzdGF0X2NvbXBhcmVfbWVhbnMoYWVzKGdyb3VwID0gR2VuZGVyKSwgbGFiZWwgPSAicC5mb3JtYXQiLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLk1lZC5TdGF0aW4uTExEX2J5R2VuZGVyLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgoKCgpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNV9yYW5rIH4gTERMR3JvdXAsIGdyb3VwLmJ5ID0gIk1lZC5TdGF0aW4uTExEIiwgZGF0YSA9IEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKExETEdyb3VwKSAmICFpcy5uYShNZWQuU3RhdGluLkxMRCkpLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dwdWJyOjpnZ2JveHBsb3QoQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoTERMR3JvdXApICYgIWlzLm5hKE1lZC5TdGF0aW4uTExEKSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiTERMR3JvdXAiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTVfcmFuayIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIkxETCAobWcvZEwpIHBlciBMTEQgdXNlIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdXG4oaW52ZXJzZS1yYW5rIHRyYW5zZm9ybWF0aW9uKSIsCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIk1lZC5TdGF0aW4uTExEIiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9IGMoIiM0OUEwMUQiLCAiIzEyOTBEOSIpLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIikgKwogIHN0YXRfY29tcGFyZV9tZWFucyhhZXMoZ3JvdXAgPSBNZWQuU3RhdGluLkxMRCksIGxhYmVsID0gInAuZm9ybWF0IiwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5MRExHcm91cHNfYnlNZWQuU3RhdGluLkxMRC5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTVfcmFuayB+IEh5cGVyY2hvbGVzdGVyb2xlbWlhLCBncm91cC5ieSA9ICJNZWQuU3RhdGluLkxMRCIsIGRhdGEgPSBBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShIeXBlcmNob2xlc3Rlcm9sZW1pYSkgJiAhaXMubmEoTWVkLlN0YXRpbi5MTEQpKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKEh5cGVyY2hvbGVzdGVyb2xlbWlhKSAmICFpcy5uYShNZWQuU3RhdGluLkxMRCkpLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoIkh5cGVyY2hvbGVzdGVyb2xlbWlhIiksCiAgICAgICAgICAgICAgICAgIHkgPSAiTUNQMV9wZ19tbF8yMDE1X3JhbmsiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJEaWFnbm9zZWQgaHlwZXJjaG9sZXN0ZXJvbGVtaWEgcGVyIExMRCB1c2UiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF1cbihpbnZlcnNlLXJhbmsgdHJhbnNmb3JtYXRpb24pIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiTWVkLlN0YXRpbi5MTEQiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gYygiIzQ5QTAxRCIsICIjMTI5MEQ5IiksCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGFlcyhncm91cCA9IE1lZC5TdGF0aW4uTExEKSwgbGFiZWwgPSAicC5mb3JtYXQiLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLkxETEdyb3Vwc19ieU1lZC5TdGF0aW4uTExELnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgoKYGBgCgoKIyMjIFJhdyBkYXRhCgpTaW1hbGFybHkgYnV0IG5vdyBmb3IgdGhlIHJhdyBkYXRhIGFzIG1lZGlhbiDCsSBpbnRlcnF1YXJ0aWxlIHJhbmdlLgoKYGBge3IgTUNQMSBwZXIgSHlwZXJjaG9sZXN0ZXJvbGVtaWEgcGVyIFNleH0KCmNvbXBhcmVfbWVhbnMoTUNQMV9wZ19tbF8yMDE1IH4gTERMR3JvdXAsIGRhdGEgPSBBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShMRExHcm91cCkpLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dwdWJyOjpnZ2JveHBsb3QoQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoTERMR3JvdXApKSwgCiAgICAgICAgICAgICAgICAgIHggPSBjKCJMRExHcm91cCIpLAogICAgICAgICAgICAgICAgICB5ID0gIk1DUDFfcGdfbWxfMjAxNSIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIkxETCAobWcvZEwpIHBlciBnZW5kZXIiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF0pIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiTERMR3JvdXAiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gIm5wZyIsCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGxhYmVsID0gInAuZm9ybWF0IiwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5yYXcuTERMR3JvdXBzLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNSB+IExETEdyb3VwLCBncm91cC5ieSA9ICJHZW5kZXIiLCBkYXRhID0gQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoTERMR3JvdXApKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKExETEdyb3VwKSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiTERMR3JvdXAiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTUiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJMREwgKG1nL2RMKSBwZXIgZ2VuZGVyIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdKSIsCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIkdlbmRlciIsCiAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSBjKCIjRDUyNjdCIiwgIiMxMjkwRDkiKSwKICAgICAgICAgICAgICAgICAgYWRkID0gImppdHRlciIpICsKICBzdGF0X2NvbXBhcmVfbWVhbnMoYWVzKGdyb3VwID0gR2VuZGVyKSwgbGFiZWwgPSAicC5mb3JtYXQiLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLnJhdy5MRExHcm91cHNfYnlHZW5kZXIucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKCgoKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTUgfiBIeXBlcmNob2xlc3Rlcm9sZW1pYSwgZGF0YSA9IEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKEh5cGVyY2hvbGVzdGVyb2xlbWlhKSksIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3B1YnI6OmdnYm94cGxvdChBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShIeXBlcmNob2xlc3Rlcm9sZW1pYSkpLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoIkh5cGVyY2hvbGVzdGVyb2xlbWlhIiksCiAgICAgICAgICAgICAgICAgIHkgPSAiTUNQMV9wZ19tbF8yMDE1IiwgCiAgICAgICAgICAgICAgICAgIHhsYWIgPSAiRGlhZ25vc2VkIGh5cGVyY2hvbGVzdGVyb2xlbWlhIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdKSIsCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIkh5cGVyY2hvbGVzdGVyb2xlbWlhIiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9ICJucGciLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIikgKwogIHN0YXRfY29tcGFyZV9tZWFucyhsYWJlbCA9ICJwLmZvcm1hdCIsIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWUucmF3Lkh5cGVyY2hvbGVzdGVyb2xlbWlhLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNSB+IEh5cGVyY2hvbGVzdGVyb2xlbWlhLCBncm91cC5ieSA9ICJHZW5kZXIiLCBkYXRhID0gQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoSHlwZXJjaG9sZXN0ZXJvbGVtaWEpKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKEh5cGVyY2hvbGVzdGVyb2xlbWlhKSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiSHlwZXJjaG9sZXN0ZXJvbGVtaWEiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTUiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJEaWFnbm9zZWQgaHlwZXJjaG9sZXN0ZXJvbGVtaWEgcGVyIGdlbmRlciIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXSkiLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJHZW5kZXIiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gYygiI0Q1MjY3QiIsICIjMTI5MEQ5IiksCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGFlcyhncm91cCA9IEdlbmRlciksIGxhYmVsID0gInAuZm9ybWF0IiwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5yYXcuSHlwZXJjaG9sZXN0ZXJvbGVtaWFfYnlHZW5kZXIucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKCgpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNSB+IE1lZC5TdGF0aW4uTExELCBkYXRhID0gQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoTWVkLlN0YXRpbi5MTEQpKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKE1lZC5TdGF0aW4uTExEKSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiTWVkLlN0YXRpbi5MTEQiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTUiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJMaXBpZC1sb3dlcmluZyBkcnVnIHVzZSIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXSkiLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJNZWQuU3RhdGluLkxMRCIsCiAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSAibnBnIiwKICAgICAgICAgICAgICAgICAgYWRkID0gImppdHRlciIpICsKICBzdGF0X2NvbXBhcmVfbWVhbnMobGFiZWwgPSAicC5mb3JtYXQiLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLnJhdy5NZWQuU3RhdGluLkxMRC5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTUgfiBNZWQuU3RhdGluLkxMRCwgZ3JvdXAuYnkgPSAiR2VuZGVyIiwgZGF0YSA9IEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKE1lZC5TdGF0aW4uTExEKSksIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3B1YnI6OmdnYm94cGxvdChBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShNZWQuU3RhdGluLkxMRCkpLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoIk1lZC5TdGF0aW4uTExEIiksCiAgICAgICAgICAgICAgICAgIHkgPSAiTUNQMV9wZ19tbF8yMDE1IiwgCiAgICAgICAgICAgICAgICAgIHhsYWIgPSAiTGlwaWQtbG93ZXJpbmcgZHJ1ZyB1c2UgcGVyIGdlbmRlciIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXSkiLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJHZW5kZXIiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gYygiI0Q1MjY3QiIsICIjMTI5MEQ5IiksCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGFlcyhncm91cCA9IEdlbmRlciksIGxhYmVsID0gInAuZm9ybWF0IiwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5yYXcuTWVkLlN0YXRpbi5MTERfYnlHZW5kZXIucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKCgoKCmNvbXBhcmVfbWVhbnMoTUNQMV9wZ19tbF8yMDE1IH4gTERMR3JvdXAsIGdyb3VwLmJ5ID0gIk1lZC5TdGF0aW4uTExEIiwgZGF0YSA9IEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKExETEdyb3VwKSAmICFpcy5uYShNZWQuU3RhdGluLkxMRCkpLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dwdWJyOjpnZ2JveHBsb3QoQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoTERMR3JvdXApICYgIWlzLm5hKE1lZC5TdGF0aW4uTExEKSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiTERMR3JvdXAiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTUiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJMREwgKG1nL2RMKSBwZXIgTExEIHVzZSIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXSkiLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJNZWQuU3RhdGluLkxMRCIsCiAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSBjKCIjNDlBMDFEIiwgIiMxMjkwRDkiKSwKICAgICAgICAgICAgICAgICAgYWRkID0gImppdHRlciIpICsKICBzdGF0X2NvbXBhcmVfbWVhbnMoYWVzKGdyb3VwID0gTWVkLlN0YXRpbi5MTEQpLCBsYWJlbCA9ICJwLmZvcm1hdCIsIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWUucmF3LkxETEdyb3Vwc19ieU1lZC5TdGF0aW4uTExELnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNSB+IEh5cGVyY2hvbGVzdGVyb2xlbWlhLCBncm91cC5ieSA9ICJNZWQuU3RhdGluLkxMRCIsIGRhdGEgPSBBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShIeXBlcmNob2xlc3Rlcm9sZW1pYSkgJiAhaXMubmEoTWVkLlN0YXRpbi5MTEQpKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKEh5cGVyY2hvbGVzdGVyb2xlbWlhKSAmICFpcy5uYShNZWQuU3RhdGluLkxMRCkpLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoIkh5cGVyY2hvbGVzdGVyb2xlbWlhIiksCiAgICAgICAgICAgICAgICAgIHkgPSAiTUNQMV9wZ19tbF8yMDE1IiwgCiAgICAgICAgICAgICAgICAgIHhsYWIgPSAiRGlhZ25vc2VkIGh5cGVyY2hvbGVzdGVyb2xlbWlhIHBlciBMTEQgdXNlIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdKSIsCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIk1lZC5TdGF0aW4uTExEIiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9IGMoIiM0OUEwMUQiLCAiIzEyOTBEOSIpLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIikgKwogIHN0YXRfY29tcGFyZV9tZWFucyhhZXMoZ3JvdXAgPSBNZWQuU3RhdGluLkxMRCksIGxhYmVsID0gInAuZm9ybWF0IiwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5yYXcuTERMR3JvdXBzX2J5TWVkLlN0YXRpbi5MTEQucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKCmBgYAoKCgojIyBLaWRuZXkgZnVuY3Rpb24gKGVHRlIpCldlIHdhbnQgdG8gY3JlYXRlIGZpZ3VyZXMgb2YgTUNQMSBsZXZlbHMgc3RyYXRpZmllZCBieSBraWRuZXkgZnVuY3Rpb24uIAoKLSBCb3ggYW5kIFdoaXNrZXIgcGxvdCBmb3IgTUNQLTEgcGxhcXVlIGxldmVscyBieSBjaHJvbmljIGtpZG5leSBkaXNlYXNlIChDS0QpIGdyb3VwICgxLCAyLCAzLCA0LCA1KQotIEJveCBhbmQgV2hpc2tlciBwbG90IGZvciBNQ1AtMSBwbGFxdWUgbGV2ZWxzIGJ5IGVHRlIgKE1EUkQtYmFzZWQpIGdyb3VwICg5MCssIDYwLTg5LCAzMC01OSwgPDMwKQoKYGBge3IgRUdGUn0KbGlicmFyeShkcGx5cikKCkFFREIuQ0VBIDwtIEFFREIuQ0VBICU+JSBtdXRhdGUoZUdGUkdyb3VwID0gZmFjdG9yKGNhc2Vfd2hlbihHRlJfTURSRCA8IDE1IH4gIjwxNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRlJfTURSRCA+PSAxNSAgJiBHRlJfTURSRCA8PSAyOSB+ICIxNS0yOSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRlJfTURSRCA+PSAzMCAgJiBHRlJfTURSRCA8PSA1OSB+ICIzMC01OSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRlJfTURSRCA+PSA2MCAgJiBHRlJfTURSRCA8PSA4OSB+ICI2MC04OSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRlJfTURSRCA+PSA5MCB+ICI5MCsiKSkpCgp0YWJsZShBRURCLkNFQSRlR0ZSR3JvdXAsIEFFREIuQ0VBJEdlbmRlcikKCnRhYmxlKEFFREIuQ0VBJGVHRlJHcm91cCwgQUVEQi5DRUEkS0RPUUkpCgpgYGAKCk5vdyB3ZSBjYW4gZHJhdyBzb21lIGdyYXBocyBvZiBwbGFxdWUgTUNQMSBsZXZlbHMgcGVyIHNleCBhbmQga2lkbmV5IGZ1bmN0aW9uIGdyb3VwLgoKIyMjIEludmVyc2UtcmFuayB0cmFuc2Zvcm1lZCBkYXRhCgoKYGBge3IgTUNQMSBwZXIgRUdGUiBwZXIgU2V4LCByYW5rZWR9CgojIEdsb2JhbCB0ZXN0CmNvbXBhcmVfbWVhbnMoTUNQMV9wZ19tbF8yMDE1X3JhbmsgfiBlR0ZSR3JvdXAsIGRhdGEgPSBBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShlR0ZSR3JvdXApKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKGVHRlJHcm91cCkpLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoImVHRlJHcm91cCIpLAogICAgICAgICAgICAgICAgICB5ID0gIk1DUDFfcGdfbWxfMjAxNV9yYW5rIiwgCiAgICAgICAgICAgICAgICAgIHhsYWIgPSAiZUdGUiAobUwvbWluIHBlciAxLjczIG0yKSIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXVxuKGludmVyc2UtcmFuayB0cmFuc2Zvcm1hdGlvbikiLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJlR0ZSR3JvdXAiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gIm5wZyIsCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWUuRUdGUi5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTVfcmFuayB+IGVHRlJHcm91cCwgZ3JvdXAuYnkgPSAiR2VuZGVyIiwgZGF0YSA9IEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKGVHRlJHcm91cCkpLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dwdWJyOjpnZ2JveHBsb3QoQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoZUdGUkdyb3VwKSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiZUdGUkdyb3VwIiksCiAgICAgICAgICAgICAgICAgIHkgPSAiTUNQMV9wZ19tbF8yMDE1X3JhbmsiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJlR0ZSIChtTC9taW4gcGVyIDEuNzMgbTIpIHBlciBnZW5kZXIiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF1cbihpbnZlcnNlLXJhbmsgdHJhbnNmb3JtYXRpb24pIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiR2VuZGVyIiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9IGMoIiNENTI2N0IiLCAiIzEyOTBEOSIpLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIikgKwogIHN0YXRfY29tcGFyZV9tZWFucyhhZXMoZ3JvdXAgPSBHZW5kZXIpLCBsYWJlbCA9ICJwLmZvcm1hdCIsIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWUuRUdGUl9ieUdlbmRlci5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTVfcmFuayB+IEtET1FJLCBkYXRhID0gQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoS0RPUUkpKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCnAxIDwtIGdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKEtET1FJKSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiS0RPUUkiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTVfcmFuayIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIktpZG5leSBmdW5jdGlvbiAoS0RPUUkpIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdXG4oaW52ZXJzZS1yYW5rIHRyYW5zZm9ybWF0aW9uKSIsCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIktET1FJIiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9ICJucGciLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIikgKwogIHN0YXRfY29tcGFyZV9tZWFucyhhZXMoZ3JvdXAgPSBLRE9RSSksIGxhYmVsID0gInAuZm9ybWF0IiwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncGFyKHAxICsgcm90YXRlX3hfdGV4dCg0NSksIGxlZ2VuZCA9ICJyaWdodCIpIApybShwMSkKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLktET1FJLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNV9yYW5rIH4gS0RPUUksIGdyb3VwLmJ5ID0gIkdlbmRlciIsICBkYXRhID0gQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoS0RPUUkpKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCnAxIDwtIGdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKEtET1FJKSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiS0RPUUkiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTVfcmFuayIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIktpZG5leSBmdW5jdGlvbiAoS0RPUUkpIHBlciBnZW5kZXIiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF1cbihpbnZlcnNlLXJhbmsgdHJhbnNmb3JtYXRpb24pIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiR2VuZGVyIiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9IGMoIiNENTI2N0IiLCAiIzEyOTBEOSIpLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIikgKwogIHN0YXRfY29tcGFyZV9tZWFucyhhZXMoZ3JvdXAgPSBHZW5kZXIpLCBsYWJlbCA9ICJwLmZvcm1hdCIsIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3BhcihwMSArIHJvdGF0ZV94X3RleHQoNDUpLCBsZWdlbmQgPSAicmlnaHQiKSAKcm0ocDEpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5LRE9RSV9ieUdlbmRlci5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTVfcmFuayB+IGVHRlJHcm91cCwgZGF0YSA9IEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKGVHRlJHcm91cCkgJiAhaXMubmEoS0RPUUkpKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCnAxIDwtIGdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKGVHRlJHcm91cCkgJiAhaXMubmEoS0RPUUkpKSwgCiAgICAgICAgICAgICAgICAgIHggPSBjKCJlR0ZSR3JvdXAiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTVfcmFuayIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gImVHRlIgKG1ML21pbiBwZXIgMS43MyBtMikgYnkgS0RPUUkgZ3JvdXAiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF1cbihpbnZlcnNlLXJhbmsgdHJhbnNmb3JtYXRpb24pIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiS0RPUUkiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gIm5wZyIsCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3BhcihwMSwgbGVnZW5kID0gInJpZ2h0IikKcm0ocDEpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5FR0ZSX0tET1FJLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpgYGAKCgojIyMgUmF3IGRhdGEKClNpbWFsYXJseSBidXQgbm93IGZvciB0aGUgcmF3IGRhdGEgYXMgbWVkaWFuIMKxIGludGVycXVhcnRpbGUgcmFuZ2UuCgoKYGBge3IgTUNQMSBwZXIgRUdGUiBwZXIgU2V4fQoKIyBHbG9iYWwgdGVzdAoKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTUgfiBlR0ZSR3JvdXAsIGRhdGEgPSBBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShlR0ZSR3JvdXApKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKGVHRlJHcm91cCkpLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoImVHRlJHcm91cCIpLAogICAgICAgICAgICAgICAgICB5ID0gIk1DUDFfcGdfbWxfMjAxNSIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gImVHRlIgKG1ML21pbiBwZXIgMS43MyBtMikiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF0iLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJlR0ZSR3JvdXAiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gIm5wZyIsCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWUucmF3LkVHRlIucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKCmNvbXBhcmVfbWVhbnMoTUNQMV9wZ19tbF8yMDE1IH4gZUdGUkdyb3VwLCBncm91cC5ieSA9ICJHZW5kZXIiLCAgZGF0YSA9IEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKGVHRlJHcm91cCkpLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dwdWJyOjpnZ2JveHBsb3QoQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoZUdGUkdyb3VwKSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiZUdGUkdyb3VwIiksCiAgICAgICAgICAgICAgICAgIHkgPSAiTUNQMV9wZ19tbF8yMDE1IiwgCiAgICAgICAgICAgICAgICAgIHhsYWIgPSAiZUdGUiAobUwvbWluIHBlciAxLjczIG0yKSBwZXIgZ2VuZGVyIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiR2VuZGVyIiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9IGMoIiNENTI2N0IiLCAiIzEyOTBEOSIpLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIikgKwogIHN0YXRfY29tcGFyZV9tZWFucyhhZXMoZ3JvdXAgPSBHZW5kZXIpLCBsYWJlbCA9ICJwLmZvcm1hdCIsIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWUucmF3LkVHRlJfYnlHZW5kZXIucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKCmNvbXBhcmVfbWVhbnMoTUNQMV9wZ19tbF8yMDE1IH4gS0RPUUksIGRhdGEgPSBBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShLRE9RSSkpLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKcDEgPC0gZ2dwdWJyOjpnZ2JveHBsb3QoQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoS0RPUUkpKSwgCiAgICAgICAgICAgICAgICAgIHggPSBjKCJLRE9RSSIpLAogICAgICAgICAgICAgICAgICB5ID0gIk1DUDFfcGdfbWxfMjAxNSIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIktpZG5leSBmdW5jdGlvbiAoS0RPUUkpIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiS0RPUUkiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gIm5wZyIsCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGFlcyhncm91cCA9IEtET1FJKSwgbGFiZWwgPSAicC5mb3JtYXQiLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dwYXIocDEgKyByb3RhdGVfeF90ZXh0KDQ1KSwgbGVnZW5kID0gInJpZ2h0IikgCnJtKHAxKQpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWUucmF3LktET1FJLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNSB+IEtET1FJLCBncm91cC5ieSA9ICJHZW5kZXIiLCAgIGRhdGEgPSBBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShLRE9RSSkpLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKcDEgPC0gZ2dwdWJyOjpnZ2JveHBsb3QoQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoS0RPUUkpKSwgCiAgICAgICAgICAgICAgICAgIHggPSBjKCJLRE9RSSIpLAogICAgICAgICAgICAgICAgICB5ID0gIk1DUDFfcGdfbWxfMjAxNSIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIktpZG5leSBmdW5jdGlvbiAoS0RPUUkpIHBlciBnZW5kZXIiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF0iLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJHZW5kZXIiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gYygiI0Q1MjY3QiIsICIjMTI5MEQ5IiksCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGFlcyhncm91cCA9IEdlbmRlciksIGxhYmVsID0gInAuZm9ybWF0IiwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncGFyKHAxICsgcm90YXRlX3hfdGV4dCg0NSksIGxlZ2VuZCA9ICJyaWdodCIpIApybShwMSkKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLnJhdy5LRE9RSV9ieUdlbmRlci5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTUgfiBlR0ZSR3JvdXAsICBkYXRhID0gQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoZUdGUkdyb3VwKSAmICFpcy5uYShLRE9RSSkpLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKcDEgPC0gZ2dwdWJyOjpnZ2JveHBsb3QoQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoZUdGUkdyb3VwKSAmICFpcy5uYShLRE9RSSkpLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoImVHRlJHcm91cCIpLAogICAgICAgICAgICAgICAgICB5ID0gIk1DUDFfcGdfbWxfMjAxNSIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gImVHRlIgKG1ML21pbiBwZXIgMS43MyBtMikgYnkgS0RPUUkgZ3JvdXAiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF0iLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJLRE9RSSIsCiAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSAibnBnIiwKICAgICAgICAgICAgICAgICAgYWRkID0gImppdHRlciIpICsKICBzdGF0X2NvbXBhcmVfbWVhbnMobWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncGFyKHAxLCBsZWdlbmQgPSAicmlnaHQiKQpybShwMSkKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLnJhdy5FR0ZSX0tET1FJLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpgYGAKCgoKIyMgQk1JCldlIHdhbnQgdG8gY3JlYXRlIGZpZ3VyZXMgb2YgTUNQMSBsZXZlbHMgc3RyYXRpZmllZCBieSBCTUkuIAoKLSBCb3ggYW5kIFdoaXNrZXIgcGxvdCBmb3IgTUNQLTEgcGxhcXVlIGxldmVscyBieSBCTUkgV0hPIGdyb3VwICh1bmRlcndlaWdodCwgbm9ybWFsLCBvdmVyd2VpZ2h0LCBvYmVzZSkKLSBCb3ggYW5kIFdoaXNrZXIgcGxvdCBmb3IgTUNQLTEgcGxhcXVlIGxldmVscyBieSBCTUkgZ3JvdXAgKDwxOC41LCAxOC41LTI0LjksIDI1LCAyOS45LCAzMC0yNC45LCAzNSspCgpgYGB7ciBCTUl9CmxpYnJhcnkoZHBseXIpCgpBRURCLkNFQSA8LSBBRURCLkNFQSAlPiUgbXV0YXRlKEJNSUdyb3VwID0gZmFjdG9yKGNhc2Vfd2hlbihCTUkgPCAxOC41IH4gIjwxOC41IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCTUkgPj0gMTguNSAgJiBCTUkgPCAyNSB+ICIxOC41LTI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCTUkgPj0gMjUgICYgQk1JIDwgMzAgfiAiMjUtMjkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJNSSA+PSAzMCAgJiBCTUkgPCAzNSB+ICIzMC0zNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQk1JID49IDM1IH4gIjM1KyIpKSkgCgojIHJlcXVpcmUobGFiZWxsZWQpCiMgQUVEQi5DRUEkQk1JX1VTIDwtIGFzX2ZhY3RvcihBRURCLkNFQSRCTUlfVVMpCiMgQUVEQi5DRUEkQk1JX1dITyA8LSBhc19mYWN0b3IoQUVEQi5DRUEkQk1JX1dITykKIyB0YWJsZShBRURCLkNFQSRCTUlfV0hPLCBBRURCLkNFQSRCTUlfVVMpCgp0YWJsZShBRURCLkNFQSRCTUlHcm91cCwgQUVEQi5DRUEkR2VuZGVyKQp0YWJsZShBRURCLkNFQSRCTUlHcm91cCwgQUVEQi5DRUEkQk1JX1dITykKCmBgYAoKTm93IHdlIGNhbiBkcmF3IHNvbWUgZ3JhcGhzIG9mIHBsYXF1ZSBNQ1AxIGxldmVscyBwZXIgc2V4IGFuZCBhZ2UgZ3JvdXAuCgojIyMgSW52ZXJzZS1yYW5rIHRyYW5zZm9ybWVkIGRhdGEKCiMjIyMgTUNQMSBwbGFxdWUgbGV2ZWxzCgpgYGB7ciBNQ1AxIHBlciBCTUkgcGVyIFNleCwgcmFua2VkfQoKIyBHbG9iYWwgdGVzdApjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNV9yYW5rIH4gQk1JR3JvdXAsICBkYXRhID0gQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoQk1JR3JvdXApKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKEJNSUdyb3VwKSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiQk1JR3JvdXAiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTVfcmFuayIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIkJNSSBncm91cHMgKGtnL20yKSIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXVxuKGludmVyc2UtcmFuayB0cmFuc2Zvcm1hdGlvbikiLAogICAgICAgICAgICAgICAgICAjIGNvbG9yID0gIkdlbmRlciIsCiAgICAgICAgICAgICAgICAgICMgcGFsZXR0ZSA9IGMoIiNENTI2N0IiLCAiIzEyOTBEOSIpLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJCTUlHcm91cCIsCiAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSAibnBnIiwKICAgICAgICAgICAgICAgICAgYWRkID0gImppdHRlciIpICsKICBzdGF0X2NvbXBhcmVfbWVhbnMobWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5CTUkucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKCmNvbXBhcmVfbWVhbnMoTUNQMV9wZ19tbF8yMDE1X3JhbmsgfiBCTUlHcm91cCwgZ3JvdXAuYnkgPSAiR2VuZGVyIiwgZGF0YSA9IEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKEJNSUdyb3VwKSksIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3B1YnI6OmdnYm94cGxvdChBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShCTUlHcm91cCkpLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoIkJNSUdyb3VwIiksCiAgICAgICAgICAgICAgICAgIHkgPSAiTUNQMV9wZ19tbF8yMDE1X3JhbmsiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJCTUkgZ3JvdXBzIChrZy9tMikgcGVyIGdlbmRlciIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXVxuKGludmVyc2UtcmFuayB0cmFuc2Zvcm1hdGlvbikiLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJHZW5kZXIiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gYygiI0Q1MjY3QiIsICIjMTI5MEQ5IiksCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGFlcyhncm91cCA9IEdlbmRlciksIGxhYmVsID0gInAuZm9ybWF0IiwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5CTUlfYnlHZW5kZXIucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKCmNvbXBhcmVfbWVhbnMoTUNQMV9wZ19tbF8yMDE1X3JhbmsgfiBCTUlHcm91cCwgZGF0YSA9IEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKEJNSUdyb3VwKSAmICFpcy5uYShCTUlfV0hPKSksIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpwMSA8LSBnZ3B1YnI6OmdnYm94cGxvdChBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShCTUlHcm91cCkgJiAhaXMubmEoQk1JX1dITykpLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoIkJNSUdyb3VwIiksCiAgICAgICAgICAgICAgICAgIHkgPSAiTUNQMV9wZ19tbF8yMDE1X3JhbmsiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJCTUkgZ3JvdXBzIChrZy9tMikgcGVyIFdITyBjYXRlZ29yaWVzIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdXG4oaW52ZXJzZS1yYW5rIHRyYW5zZm9ybWF0aW9uKSIsCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIkJNSV9XSE8iLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gIm5wZyIsCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3BhcihwMSwgbGVnZW5kID0gInJpZ2h0IikKcm0ocDEpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5CTUlfYnlXSE8ucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKCmBgYAoKCiMjIyBSYXcgZGF0YQoKU2ltYWxhcmx5IGJ1dCBub3cgZm9yIHRoZSByYXcgZGF0YSBhcyBtZWRpYW4gwrEgaW50ZXJxdWFydGlsZSByYW5nZS4KCgpgYGB7ciBNQ1AxIHBlciBCTUkgcGVyIFNleH0KCiMgR2xvYmFsIHRlc3QKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTUgfiBCTUlHcm91cCwgIGRhdGEgPSBBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShCTUlHcm91cCkpLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dwdWJyOjpnZ2JveHBsb3QoQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoQk1JR3JvdXApKSwgCiAgICAgICAgICAgICAgICAgIHggPSBjKCJCTUlHcm91cCIpLAogICAgICAgICAgICAgICAgICB5ID0gIk1DUDFfcGdfbWxfMjAxNSIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIkJNSSBncm91cHMgKGtnL20yKSIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXSIsCiAgICAgICAgICAgICAgICAgICMgY29sb3IgPSAiR2VuZGVyIiwKICAgICAgICAgICAgICAgICAgIyBwYWxldHRlID0gYygiI0Q1MjY3QiIsICIjMTI5MEQ5IiksCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIkJNSUdyb3VwIiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9ICJucGciLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIikgKwogIHN0YXRfY29tcGFyZV9tZWFucyhsYWJlbCA9ICJwLmZvcm1hdCIsIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWUucmF3LkJNSS5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTUgfiBCTUlHcm91cCwgZ3JvdXAuYnkgPSAiR2VuZGVyIiwgZGF0YSA9IEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKEJNSUdyb3VwKSksIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3B1YnI6OmdnYm94cGxvdChBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShCTUlHcm91cCkpLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoIkJNSUdyb3VwIiksCiAgICAgICAgICAgICAgICAgIHkgPSAiTUNQMV9wZ19tbF8yMDE1IiwgCiAgICAgICAgICAgICAgICAgIHhsYWIgPSAiQk1JIGdyb3VwcyAoa2cvbTIpIHBlciBnZW5kZXIiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF0iLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJHZW5kZXIiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gYygiI0Q1MjY3QiIsICIjMTI5MEQ5IiksCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGFlcyhncm91cCA9IEdlbmRlciksIGxhYmVsID0gInAuZm9ybWF0IiwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5yYXcuQk1JX2J5R2VuZGVyLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNSB+IEJNSUdyb3VwLCAgZGF0YSA9IEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKEJNSUdyb3VwKSAmICFpcy5uYShCTUlfV0hPKSksIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpwMSA8LSBnZ3B1YnI6OmdnYm94cGxvdChBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShCTUlHcm91cCkgJiAhaXMubmEoQk1JX1dITykpLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoIkJNSUdyb3VwIiksCiAgICAgICAgICAgICAgICAgIHkgPSAiTUNQMV9wZ19tbF8yMDE1IiwgCiAgICAgICAgICAgICAgICAgIHhsYWIgPSAiQk1JIGdyb3VwcyAoa2cvbTIpIHBlciBXSE8gY2F0ZWdvcmllcyIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXSIsCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIkJNSV9XSE8iLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gIm5wZyIsCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3BhcihwMSwgbGVnZW5kID0gInJpZ2h0IikKcm0ocDEpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5yYXcuQk1JX2J5V0hPLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpgYGAKCgojIyBEaWFiZXRlcwpXZSB3YW50IHRvIGNyZWF0ZSBmaWd1cmVzIG9mIE1DUDEgbGV2ZWxzIHN0cmF0aWZpZWQgYnkgdHlwZSAyIGRpYWJldGVzLiAKCi0gQm94IGFuZCBXaGlza2VyIHBsb3QgZm9yIE1DUC0xIHBsYXF1ZSBsZXZlbHMgYnkgdHlwZSAyIGRpYWJldGVzIGdyb3VwIChubywgeWVzKQoKTm93IHdlIGNhbiBkcmF3IHNvbWUgZ3JhcGhzIG9mIHBsYXF1ZSBNQ1AxIGxldmVscyBwZXIgc2V4IGFuZCBhZ2UgZ3JvdXAuCgojIyMgSW52ZXJzZS1yYW5rIHRyYW5zZm9ybWVkIGRhdGEKCmBgYHtyIE1DUDEgcGVyIERpYWJldGVzIHBlciBTZXgsIHJhbmtlZH0KCiMgR2xvYmFsIHRlc3QKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTVfcmFuayB+IERpYWJldGVzU3RhdHVzLCAgZGF0YSA9IEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKERpYWJldGVzU3RhdHVzKSksIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3B1YnI6OmdnYm94cGxvdChBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShEaWFiZXRlc1N0YXR1cykpLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoIkRpYWJldGVzU3RhdHVzIiksCiAgICAgICAgICAgICAgICAgIHkgPSAiTUNQMV9wZ19tbF8yMDE1X3JhbmsiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJEaWFiZXRlcyBzdGF0dXMiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF1cbihpbnZlcnNlLXJhbmsgdHJhbnNmb3JtYXRpb24pIiwKICAgICAgICAgICAgICAgICAgIyBjb2xvciA9ICJHZW5kZXIiLAogICAgICAgICAgICAgICAgICAjIHBhbGV0dGUgPSBjKCIjRDUyNjdCIiwgIiMxMjkwRDkiKSwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiRGlhYmV0ZXNTdGF0dXMiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gIm5wZyIsCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGxhYmVsID0gInAuZm9ybWF0IiwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5EaWFiZXRlcy5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTVfcmFuayB+IERpYWJldGVzU3RhdHVzLCBncm91cC5ieSA9ICJHZW5kZXIiLCBkYXRhID0gQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoRGlhYmV0ZXNTdGF0dXMpKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKERpYWJldGVzU3RhdHVzKSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiRGlhYmV0ZXNTdGF0dXMiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTVfcmFuayIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIkRpYWJldGVzIHN0YXR1cyBwZXIgZ2VuZGVyIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdXG4oaW52ZXJzZS1yYW5rIHRyYW5zZm9ybWF0aW9uKSIsCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIkdlbmRlciIsCiAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSBjKCIjRDUyNjdCIiwgIiMxMjkwRDkiKSwKICAgICAgICAgICAgICAgICAgYWRkID0gImppdHRlciIpICsKICBzdGF0X2NvbXBhcmVfbWVhbnMoYWVzKGdyb3VwID0gR2VuZGVyKSwgbGFiZWwgPSAicC5mb3JtYXQiLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLkRpYWJldGVzX2J5R2VuZGVyLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpgYGAKCgojIyMgUmF3IGRhdGEKClNpbWFsYXJseSBidXQgbm93IGZvciB0aGUgcmF3IGRhdGEgYXMgbWVkaWFuIMKxIGludGVycXVhcnRpbGUgcmFuZ2UuCgoKYGBge3IgTUNQMSBwZXIgRGlhYmV0ZXMgcGVyIFNleH0KCiMgR2xvYmFsIHRlc3QKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTUgfiBEaWFiZXRlc1N0YXR1cywgIGRhdGEgPSBBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShEaWFiZXRlc1N0YXR1cykpLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dwdWJyOjpnZ2JveHBsb3QoQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoRGlhYmV0ZXNTdGF0dXMpKSwgCiAgICAgICAgICAgICAgICAgIHggPSBjKCJEaWFiZXRlc1N0YXR1cyIpLAogICAgICAgICAgICAgICAgICB5ID0gIk1DUDFfcGdfbWxfMjAxNSIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIkRpYWJldGVzIHN0YXR1cyIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXSIsCiAgICAgICAgICAgICAgICAgICMgY29sb3IgPSAiR2VuZGVyIiwKICAgICAgICAgICAgICAgICAgIyBwYWxldHRlID0gYygiI0Q1MjY3QiIsICIjMTI5MEQ5IiksCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIkRpYWJldGVzU3RhdHVzIiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9ICJucGciLAogICAgICAgICAgICAgICAgICBhZGQgPSBjKCJtZWRpYW5faXFyIiwgImppdHRlciIpKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGxhYmVsID0gInAuZm9ybWF0IiwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5yYXcuRGlhYmV0ZXMucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKCmNvbXBhcmVfbWVhbnMoTUNQMV9wZ19tbF8yMDE1IH4gRGlhYmV0ZXNTdGF0dXMsIGdyb3VwLmJ5ID0gIkdlbmRlciIsIGRhdGEgPSBBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShEaWFiZXRlc1N0YXR1cykpLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dwdWJyOjpnZ2JveHBsb3QoQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoRGlhYmV0ZXNTdGF0dXMpKSwgCiAgICAgICAgICAgICAgICAgIHggPSBjKCJEaWFiZXRlc1N0YXR1cyIpLAogICAgICAgICAgICAgICAgICB5ID0gIk1DUDFfcGdfbWxfMjAxNSIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIkRpYWJldGVzIHN0YXR1cyBwZXIgZ2VuZGVyIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiR2VuZGVyIiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9IGMoIiNENTI2N0IiLCAiIzEyOTBEOSIpLAogICAgICAgICAgICAgICAgICBhZGQgPSBjKCJtZWRpYW5faXFyIiwgImppdHRlciIpKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGFlcyhncm91cCA9IEdlbmRlciksIGxhYmVsID0gInAuZm9ybWF0IiwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5yYXcuRGlhYmV0ZXNfYnlHZW5kZXIucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKCgpgYGAKCgoKIyMgU21va2luZwpXZSB3YW50IHRvIGNyZWF0ZSBmaWd1cmVzIG9mIE1DUDEgbGV2ZWxzIHN0cmF0aWZpZWQgYnkgc21va2luZy4gCgotIEJveCBhbmQgV2hpc2tlciBwbG90IGZvciBNQ1AtMSBwbGFxdWUgbGV2ZWxzIGJ5IHNtb2tpbmcgZ3JvdXAgKG5ldmVyLCBleCwgY3VycmVudCkKCk5vdyB3ZSBjYW4gZHJhdyBzb21lIGdyYXBocyBvZiBwbGFxdWUgTUNQMSBsZXZlbHMgcGVyIHNleCBhbmQgYWdlIGdyb3VwLgoKIyMjIEludmVyc2UtcmFuayB0cmFuc2Zvcm1lZCBkYXRhCgpgYGB7ciBNQ1AxIHBlciBTbW9raW5nIHBlciBTZXgsIHJhbmtlZH0KCiMgR2xvYmFsIHRlc3QKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTVfcmFuayB+IFNtb2tlclN0YXR1cywgIGRhdGEgPSBBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShTbW9rZXJTdGF0dXMpKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKFNtb2tlclN0YXR1cykpLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoIlNtb2tlclN0YXR1cyIpLAogICAgICAgICAgICAgICAgICB5ID0gIk1DUDFfcGdfbWxfMjAxNV9yYW5rIiwgCiAgICAgICAgICAgICAgICAgIHhsYWIgPSAiU21va2VyIHN0YXR1cyIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXVxuKGludmVyc2UtcmFuayB0cmFuc2Zvcm1hdGlvbikiLAogICAgICAgICAgICAgICAgICAjIGNvbG9yID0gIkdlbmRlciIsCiAgICAgICAgICAgICAgICAgICMgcGFsZXR0ZSA9IGMoIiNENTI2N0IiLCAiIzEyOTBEOSIpLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJTbW9rZXJTdGF0dXMiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gIm5wZyIsCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGxhYmVsID0gInAuZm9ybWF0IiwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5TbW9raW5nLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNV9yYW5rIH4gU21va2VyU3RhdHVzLCBncm91cC5ieSA9ICJHZW5kZXIiLCBkYXRhID0gQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoU21va2VyU3RhdHVzKSksIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3B1YnI6OmdnYm94cGxvdChBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShTbW9rZXJTdGF0dXMpKSwgCiAgICAgICAgICAgICAgICAgIHggPSBjKCJTbW9rZXJTdGF0dXMiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTVfcmFuayIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIlNtb2tlciBzdGF0dXMgcGVyIGdlbmRlciIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXVxuKGludmVyc2UtcmFuayB0cmFuc2Zvcm1hdGlvbikiLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJHZW5kZXIiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gYygiI0Q1MjY3QiIsICIjMTI5MEQ5IiksCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGFlcyhncm91cCA9IEdlbmRlciksIGxhYmVsID0gInAuZm9ybWF0IiwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5TbW9raW5nX2J5R2VuZGVyLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpgYGAKCgojIyMgUmF3IGRhdGEKClNpbWFsYXJseSBidXQgbm93IGZvciB0aGUgcmF3IGRhdGEgYXMgbWVkaWFuIMKxIGludGVycXVhcnRpbGUgcmFuZ2UuCgoKYGBge3IgTUNQMSBwZXIgU21va2luZyBwZXIgU2V4fQoKIyBHbG9iYWwgdGVzdApjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNSB+IFNtb2tlclN0YXR1cywgIGRhdGEgPSBBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShTbW9rZXJTdGF0dXMpKSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBICU+JSBmaWx0ZXIoIWlzLm5hKFNtb2tlclN0YXR1cykpLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoIlNtb2tlclN0YXR1cyIpLAogICAgICAgICAgICAgICAgICB5ID0gIk1DUDFfcGdfbWxfMjAxNSIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIlNtb2tlciBzdGF0dXMiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF0iLAogICAgICAgICAgICAgICAgICAjIGNvbG9yID0gIkdlbmRlciIsCiAgICAgICAgICAgICAgICAgICMgcGFsZXR0ZSA9IGMoIiNENTI2N0IiLCAiIzEyOTBEOSIpLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJTbW9rZXJTdGF0dXMiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gIm5wZyIsCiAgICAgICAgICAgICAgICAgIGFkZCA9IGMoIm1lZGlhbl9pcXIiLCAiaml0dGVyIikpICsKICBzdGF0X2NvbXBhcmVfbWVhbnMobGFiZWwgPSAicC5mb3JtYXQiLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLnJhdy5TbW9raW5nLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNSB+IFNtb2tlclN0YXR1cywgZ3JvdXAuYnkgPSJHZW5kZXIiLCBkYXRhID0gQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoU21va2VyU3RhdHVzKSksIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3B1YnI6OmdnYm94cGxvdChBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShTbW9rZXJTdGF0dXMpKSwgCiAgICAgICAgICAgICAgICAgIHggPSBjKCJTbW9rZXJTdGF0dXMiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTUiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJTbW9rZXIgc3RhdHVzIHBlciBnZW5kZXIiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF0iLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJHZW5kZXIiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gYygiI0Q1MjY3QiIsICIjMTI5MEQ5IiksCiAgICAgICAgICAgICAgICAgIGFkZCA9IGMoIm1lZGlhbl9pcXIiLCAiaml0dGVyIikpICsKICBzdGF0X2NvbXBhcmVfbWVhbnMoYWVzKGdyb3VwID0gR2VuZGVyKSwgbGFiZWwgPSAicC5mb3JtYXQiLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLnJhdy5TbW9raW5nX2J5R2VuZGVyLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpgYGAKCgoKIyMgU3Rlbm9zaXMKV2Ugd2FudCB0byBjcmVhdGUgZmlndXJlcyBvZiBNQ1AxIGxldmVscyBzdHJhdGlmaWVkIGJ5IHN0ZW5vc2lzIGdyYWRlLiAKCi0gQm94IGFuZCBXaGlza2VyIHBsb3QgZm9yIE1DUC0xIHBsYXF1ZSBsZXZlbHMgYnkgc3Rlbm9zaXMgZ3JhZGUgZ3JvdXAgKDw3MCwgNzAtODksIDkwKykKCmBgYHtyIFN0ZW5vc2lzfQpsaWJyYXJ5KGRwbHlyKQoKQUVEQi5DRUEgPC0gQUVEQi5DRUEgJT4lIG11dGF0ZShTdGVub3RpY0dyb3VwID0gZmFjdG9yKGNhc2Vfd2hlbihzdGVub3NlID09ICIwLTQ5JSIgfiAiPDcwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGVub3NlID09ICIwLTQ5JSIgfiAiPDcwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGVub3NlID09ICI1MC03MCUiIH4gIjw3MCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rlbm9zZSA9PSAiNzAtOTAlIiB+ICI3MC04OSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rlbm9zZSA9PSAiNTAtOTklIiB+ICI5MCsiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZW5vc2UgPT0gIjcwLTk5JSIgfiAiOTArIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGVub3NlID09ICIxMDAlIChPY2NsdXNpb24pIiB+ICI5MCsiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZW5vc2UgPT0gIjkwLTk5JSIgfiAiOTArIikpKQoKdGFibGUoQUVEQi5DRUEkU3Rlbm90aWNHcm91cCwgQUVEQi5DRUEkR2VuZGVyKQp0YWJsZShBRURCLkNFQSRzdGVub3NlLCBBRURCLkNFQSRTdGVub3RpY0dyb3VwKQoKYGBgCgpOb3cgd2UgY2FuIGRyYXcgc29tZSBncmFwaHMgb2YgcGxhcXVlIE1DUDEgbGV2ZWxzIHBlciBzZXggYW5kIGFnZSBncm91cC4KCiMjIyBJbnZlcnNlLXJhbmsgdHJhbnNmb3JtZWQgZGF0YQoKYGBge3IgTUNQMSBwZXIgU3Rlbm9zaXMgcGVyIFNleCwgcmFua2VkfQoKIyBHbG9iYWwgdGVzdApjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNV9yYW5rIH4gU3Rlbm90aWNHcm91cCwgIGRhdGEgPSBBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShTdGVub3RpY0dyb3VwKSksIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3B1YnI6OmdnYm94cGxvdChBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShTdGVub3RpY0dyb3VwKSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiU3Rlbm90aWNHcm91cCIpLAogICAgICAgICAgICAgICAgICB5ID0gIk1DUDFfcGdfbWxfMjAxNV9yYW5rIiwgCiAgICAgICAgICAgICAgICAgIHhsYWIgPSAiU3Rlbm90aWMgZ3JhZGUiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF1cbihpbnZlcnNlLXJhbmsgdHJhbnNmb3JtYXRpb24pIiwKICAgICAgICAgICAgICAgICAgIyBjb2xvciA9ICJHZW5kZXIiLAogICAgICAgICAgICAgICAgICAjIHBhbGV0dGUgPSBjKCIjRDUyNjdCIiwgIiMxMjkwRDkiKSwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiU3Rlbm90aWNHcm91cCIsCiAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSAibnBnIiwKICAgICAgICAgICAgICAgICAgYWRkID0gImppdHRlciIpICsKICBzdGF0X2NvbXBhcmVfbWVhbnMobGFiZWwgPSAicC5mb3JtYXQiLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLlN0ZW5vc2lzLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNV9yYW5rIH4gU3Rlbm90aWNHcm91cCwgZ3JvdXAuYnkgPSJHZW5kZXIiLCBkYXRhID0gQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoU3Rlbm90aWNHcm91cCkpLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dwdWJyOjpnZ2JveHBsb3QoQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoU3Rlbm90aWNHcm91cCkpLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoIlN0ZW5vdGljR3JvdXAiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTVfcmFuayIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIlN0ZW5vdGljIGdyYWRlIHBlciBnZW5kZXIiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF1cbihpbnZlcnNlLXJhbmsgdHJhbnNmb3JtYXRpb24pIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiR2VuZGVyIiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9IGMoIiNENTI2N0IiLCAiIzEyOTBEOSIpLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIikgKwogIHN0YXRfY29tcGFyZV9tZWFucyhhZXMoZ3JvdXAgPSBHZW5kZXIpLCBsYWJlbCA9ICJwLmZvcm1hdCIsIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWUuU3Rlbm9zaXNfYnlHZW5kZXIucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKCmBgYAoKCiMjIyBSYXcgZGF0YQoKU2ltYWxhcmx5IGJ1dCBub3cgZm9yIHRoZSByYXcgZGF0YSBhcyBtZWRpYW4gwrEgaW50ZXJxdWFydGlsZSByYW5nZS4KCmBgYHtyIE1DUDEgcGVyIFN0ZW5vc2lzIHBlciBTZXh9CgojIEdsb2JhbCB0ZXN0CmNvbXBhcmVfbWVhbnMoTUNQMV9wZ19tbF8yMDE1IH4gU3Rlbm90aWNHcm91cCwgIGRhdGEgPSBBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShTdGVub3RpY0dyb3VwKSksIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3B1YnI6OmdnYm94cGxvdChBRURCLkNFQSAlPiUgZmlsdGVyKCFpcy5uYShTdGVub3RpY0dyb3VwKSksIAogICAgICAgICAgICAgICAgICB4ID0gYygiU3Rlbm90aWNHcm91cCIpLAogICAgICAgICAgICAgICAgICB5ID0gIk1DUDFfcGdfbWxfMjAxNSIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIlN0ZW5vdGljIGdyYWRlIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdIiwKICAgICAgICAgICAgICAgICAgIyBjb2xvciA9ICJHZW5kZXIiLAogICAgICAgICAgICAgICAgICAjIHBhbGV0dGUgPSBjKCIjRDUyNjdCIiwgIiMxMjkwRDkiKSwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiU3Rlbm90aWNHcm91cCIsCiAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSAibnBnIiwKICAgICAgICAgICAgICAgICAgYWRkID0gImppdHRlciIpICsKICBzdGF0X2NvbXBhcmVfbWVhbnMobGFiZWwgPSAicC5mb3JtYXQiLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLnJhdy5TdGVub3Npcy5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTUgfiBTdGVub3RpY0dyb3VwLCBncm91cC5ieSA9ICJHZW5kZXIiLCBkYXRhID0gQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoU3Rlbm90aWNHcm91cCkpLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dwdWJyOjpnZ2JveHBsb3QoQUVEQi5DRUEgJT4lIGZpbHRlcighaXMubmEoU3Rlbm90aWNHcm91cCkpLCAKICAgICAgICAgICAgICAgICAgeCA9IGMoIlN0ZW5vdGljR3JvdXAiKSwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTUiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJTdGVub3RpYyBncmFkZSBwZXIgZ2VuZGVyIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiR2VuZGVyIiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9IGMoIiNENTI2N0IiLCAiIzEyOTBEOSIpLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIikgKwogIHN0YXRfY29tcGFyZV9tZWFucyhhZXMoZ3JvdXAgPSBHZW5kZXIpLCBsYWJlbCA9ICJwLmZvcm1hdCIsIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWUucmF3LlN0ZW5vc2lzX2J5R2VuZGVyLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpgYGAKCgojIyBQbGFxdWUgdnMuIHBsYXF1ZSBNQ1AxIGxldmVscwpXZSB3aWxsIGFsc28gbWFrZSBhIG5pY2UgY29ycmVsYXRpb24gcGxvdCBiZXR3ZWVuIHRoZSB0d28gZXhwZXJpbWVudHMgb2YgcGxhcXVlIE1DUDEgbGV2ZWxzLiAKCmBgYHtyIE1DUDEgY29ycmVsYXRpb25zLCBwbGFxdWUgdnMuIHBsYXF1ZX0KQUVEQi5DRUEkTUNQMV9yYW5rIDwtIHFub3JtKChyYW5rKEFFREIuQ0VBJE1DUDEsIG5hLmxhc3QgPSAia2VlcCIpIC0gMC41KSAvIHN1bSghaXMubmEoQUVEQi5DRUEkTUNQMSkpKQpzdW1tYXJ5KEFFREIuQ0VBJE1DUDEpCnN1bW1hcnkoQUVEQi5DRUEkTUNQMV9wZ191Z18yMDE1KQoKZ2dwdWJyOjpnZ3NjYXR0ZXIoQUVEQi5DRUEsIAogICAgICAgICAgICAgICAgICB4ID0gIk1DUDEiLCAKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTUiLAogICAgICAgICAgICAgICAgICB4bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF0gKGV4cC4gbm8uIDEpIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdIChleHAuIG5vLiAyKSIsCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJyZWcubGluZSIsIGFkZC5wYXJhbXMgPSBsaXN0KGNvbG9yID0gIiMxMjkwRDkiKSwKICAgICAgICAgICAgICAgICAgY29uZi5pbnQgPSBUUlVFLAogICAgICAgICAgICAgICAgICBjb3IuY29lZiA9IFRSVUUsIGNvci5jb2VmZi5hcmdzID0gbGlzdChtZXRob2QgPSAic3BlYXJtYW4iKSkKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlX3ZzX3BsYXF1ZS5yYXcucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKCmdncHVicjo6Z2dzY2F0dGVyKEFFREIuQ0VBLCAKICAgICAgICAgICAgICAgICAgeCA9ICJNQ1AxX3JhbmsiLCAKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3BnX21sXzIwMTVfcmFuayIsCiAgICAgICAgICAgICAgICAgIHhsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXSAoZXhwLiBuby4gMSkiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF0gKGV4cC4gbm8uIDIpIiwKICAgICAgICAgICAgICAgICAgYWRkID0gInJlZy5saW5lIiwgYWRkLnBhcmFtcyA9IGxpc3QoY29sb3IgPSAiIzEyOTBEOSIpLAogICAgICAgICAgICAgICAgICBjb25mLmludCA9IFRSVUUsCiAgICAgICAgICAgICAgICAgIGNvci5jb2VmID0gVFJVRSwgY29yLmNvZWZmLmFyZ3MgPSBsaXN0KG1ldGhvZCA9ICJzcGVhcm1hbiIpKQpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWVfdnNfcGxhcXVlLnJhbmsucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKCgpgYGAKCgojIyBTeW1wdG9tcwpXZSB3YW50IHRvIGNyZWF0ZSBwZXItc3ltcHRvbSBmaWd1cmVzLiAKCmBgYHtyIFN5bXB0b21Hcm91cHN9CmxpYnJhcnkoZHBseXIpCgp0YWJsZShBRURCLkNFQSRBZ2VHcm91cCwgQUVEQi5DRUEkQXN5bXB0U3ltcHQyRykKdGFibGUoQUVEQi5DRUEkR2VuZGVyLCBBRURCLkNFQSRBc3ltcHRTeW1wdDJHKQp0YWJsZShBRURCLkNFQSRBc3ltcHRTeW1wdDJHKQoKYGBgCgojIyMgSW52ZXJzZS1yYW5rIHRyYW5zZm9ybWVkIGRhdGEKCk5vdyB3ZSBjYW4gZHJhdyBzb21lIGdyYXBocyBvZiBwbGFxdWUgTUNQMSBsZXZlbHMgcGVyIHN5bXB0b20gZ3JvdXAuCmBgYHtyIE1DUDEgcGVyIFN5bXB0b21Hcm91cHMsIHJhbmtlZH0KCiMgP2dncHVicjo6Z2dib3hwbG90KCkKbXlfY29tcGFyaXNvbnMgPC0gbGlzdChjKCJBc3ltcHRvbWF0aWMiLCAiU3ltcHRvbWF0aWMiKSkKCnAxIDwtIGdncHVicjo6Z2dkb3RwbG90KEFFREIuQ0VBLCAKICAgICAgICAgICAgICAgICAgeCA9ICJBc3ltcHRTeW1wdDJHIiwgeSA9ICJNQ1AxX3BnX21sXzIwMTVfcmFuayIsCiAgICAgICAgICAgICAgICAgIHRpdGxlID0gIk1DUDEgcGxhcXVlIFtwZy9tTF0gbGV2ZWxzIHBlciBzeW1wdG9tIiwgCiAgICAgICAgICAgICAgICAgIHhsYWIgPSAiU3ltcHRvbXMiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF1cbiBpbnZlcnNlLXJhbmsgdHJhbnNmb3JtYXRpb24iLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJBc3ltcHRTeW1wdDJHIiwgZmlsbCA9ICJBc3ltcHRTeW1wdDJHIiwKICAgICAgICAgICAgICAgICAgIyBwYWxldHRlID0gYyh1aXRob2ZfY29sb3JbMTZdLCB1aXRob2ZfY29sb3JbMjNdKSwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9ICJucGciLAogICAgICAgICAgICAgICAgICBzaXplID0gMC4yNSwKICAgICAgICAgICAgICAgICAgYWRkID0gImJveHBsb3QiLCAjIEFkZCBkb3RwbG90CiAgICAgICAgICAgICAgICAgIGFkZC5wYXJhbXMgPSBsaXN0KGJpbndpZHRoID0gMC4xLCBkb3RzaXplID0gMC4zKQogICAgICAgICAgKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGNvbXBhcmlzb25zID0gbXlfY29tcGFyaXNvbnMsIG1ldGhvZCA9ICJ3aWxjb3gudGVzdCIpCmdncGFyKHAxLCBsZWdlbmQgPSBjKCJyaWdodCIpLCBsZWdlbmQudGl0bGUgPSAiU3ltcHRvbXMiKQoKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLkFzeW1wdFN5bXB0MkcucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKCnJtKHAxKQoKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTVfcmFuayB+IEFzeW1wdFN5bXB0MkcsIGdyb3VwLmJ5ID0gIkdlbmRlciIsIGRhdGEgPSBBRURCLkNFQSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCnAxIDwtIGdncHVicjo6Z2dkb3RwbG90KEFFREIuQ0VBLCAKICAgICAgICAgICAgICAgICAgeCA9ICJBc3ltcHRTeW1wdDJHIiwgeSA9ICJNQ1AxX3BnX21sXzIwMTVfcmFuayIsCiAgICAgICAgICAgICAgICAgIHRpdGxlID0gIk1DUDEgcGxhcXVlIFtwZy9tTF0gbGV2ZWxzIHBlciBzeW1wdG9tIGJ5IGdlbmRlciIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIlN5bXB0b21zIiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdXG4gaW52ZXJzZS1yYW5rIHRyYW5zZm9ybWF0aW9uIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiR2VuZGVyIiwgZmlsbCA9ICJHZW5kZXIiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gYygiI0Q1MjY3QiIsICIjMTI5MEQ5IiksCiAgICAgICAgICAgICAgICAgIHNpemUgPSAwLjE1LAogICAgICAgICAgICAgICAgICBhZGQgPSAiYm94cGxvdCIsICMgQWRkIGRvdHBsb3QKICAgICAgICAgICAgICAgICAgYWRkLnBhcmFtcyA9IGxpc3QoYmlud2lkdGggPSAwLjEsIGRvdHNpemUgPSAwLjMpCiAgICAgICAgICApICsKICBzdGF0X2NvbXBhcmVfbWVhbnMoYWVzKGdyb3VwID0gR2VuZGVyKSwgbGFiZWwgPSAicC5mb3JtYXQiLCAgbWV0aG9kID0gIndpbGNveC50ZXN0IikKZ2dwYXIocDEsIGxlZ2VuZCA9IGMoInJpZ2h0IiksIGxlZ2VuZC50aXRsZSA9ICJTeW1wdG9tcyIpCgpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWUuQXN5bXB0U3ltcHQyRy5ieUdlbmRlci5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKcm0ocDEpCgojIHJlZ3VsYXIgYm94cGxvdHMKcDEgPC0gZ2dwdWJyOjpnZ2JveHBsb3QoQUVEQi5DRUEsIAogICAgICAgICAgICAgICAgICB4ID0gIkFzeW1wdFN5bXB0MkciLCB5ID0gIk1DUDFfcGdfbWxfMjAxNV9yYW5rIiwKICAgICAgICAgICAgICAgICAgdGl0bGUgPSAiTUNQMSBwbGFxdWUgW3BnL21MXSBsZXZlbHMgcGVyIHN5bXB0b20iLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJTeW1wdG9tcyIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXVxuIGludmVyc2UtcmFuayB0cmFuc2Zvcm1hdGlvbiIsCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIkFzeW1wdFN5bXB0MkciLCAKICAgICAgICAgICAgICAgICAgIyBwYWxldHRlID0gYyh1aXRob2ZfY29sb3JbMTZdLCB1aXRob2ZfY29sb3JbMjNdKSwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9ICJucGciLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIiwgCiAgICAgICAgICAgICAgICAgIGFkZC5wYXJhbXMgPSBsaXN0KGJpbndpZHRoID0gMC4xLCBkb3RzaXplID0gMC4zKQogICAgICAgICAgKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGNvbXBhcmlzb25zID0gbXlfY29tcGFyaXNvbnMsIG1ldGhvZCA9ICJ3aWxjb3gudGVzdCIpCmdncGFyKHAxLCBsZWdlbmQgPSBjKCJyaWdodCIpLCBsZWdlbmQudGl0bGUgPSAiU3ltcHRvbXMiKQoKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLkFzeW1wdFN5bXB0MkcucmVnQm94UGxvdC5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKcm0ocDEpCgpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNV9yYW5rIH4gQXN5bXB0U3ltcHQyRywgZ3JvdXAuYnkgPSAiR2VuZGVyIiwgZGF0YSA9IEFFREIuQ0VBLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKcDEgPC0gZ2dwdWJyOjpnZ2JveHBsb3QoQUVEQi5DRUEsIAogICAgICAgICAgICAgICAgICB4ID0gIkFzeW1wdFN5bXB0MkciLCB5ID0gIk1DUDFfcGdfbWxfMjAxNV9yYW5rIiwKICAgICAgICAgICAgICAgICAgdGl0bGUgPSAiTUNQMSBwbGFxdWUgW3BnL21MXSBsZXZlbHMgcGVyIHN5bXB0b20gYnkgZ2VuZGVyIiwgCiAgICAgICAgICAgICAgICAgIHhsYWIgPSAiU3ltcHRvbXMiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF1cbiBpbnZlcnNlLXJhbmsgdHJhbnNmb3JtYXRpb24iLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJHZW5kZXIiLCAKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9IGMoIiNENTI2N0IiLCAiIzEyOTBEOSIpLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIiwgCiAgICAgICAgICAgICAgICAgIGFkZC5wYXJhbXMgPSBsaXN0KGJpbndpZHRoID0gMC4xLCBkb3RzaXplID0gMC4zKQogICAgICAgICAgKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGFlcyhncm91cCA9IEdlbmRlciksIGxhYmVsID0gInAuZm9ybWF0IiwgIG1ldGhvZCA9ICJ3aWxjb3gudGVzdCIpCmdncGFyKHAxLCBsZWdlbmQgPSBjKCJyaWdodCIpLCBsZWdlbmQudGl0bGUgPSAiU3ltcHRvbXMiKQoKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLkFzeW1wdFN5bXB0MkcuYnlHZW5kZXIucmVnQm94UGxvdC5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKcm0ocDEpCgpgYGAKCiMjIyBSYXcgZGF0YQoKU2ltYWxhcmx5IGJ1dCBub3cgZm9yIHRoZSByYXcgZGF0YSBhcyBtZWRpYW4gwrEgaW50ZXJxdWFydGlsZSByYW5nZS4KCmBgYHtyIE1DUDEgcGVyIFN5bXB0b21Hcm91cHN9CgojID9nZ3B1YnI6OmdnYm94cGxvdCgpCm15X2NvbXBhcmlzb25zIDwtIGxpc3QoYygiQXN5bXB0b21hdGljIiwgIlN5bXB0b21hdGljIikpCgpwMSA8LSBnZ3B1YnI6OmdnYm94cGxvdChBRURCLkNFQSwgCiAgICAgICAgICAgICAgICAgIHggPSAiQXN5bXB0U3ltcHQyRyIsIHkgPSAiTUNQMV9wZ19tbF8yMDE1IiwKICAgICAgICAgICAgICAgICAgdGl0bGUgPSAiTUNQMSBwbGFxdWUgW3BnL21MXSBsZXZlbHMgcGVyIHN5bXB0b20iLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJTeW1wdG9tcyIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXSIsCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIkFzeW1wdFN5bXB0MkciLCAKICAgICAgICAgICAgICAgICAgIyBwYWxldHRlID0gYyh1aXRob2ZfY29sb3JbMTZdLCB1aXRob2ZfY29sb3JbMjNdKSwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9ICJucGciLAogICAgICAgICAgICAgICAgICBhZGQgPSAiZG90cGxvdCIsICMgQWRkIGRvdHBsb3QKICAgICAgICAgICAgICAgICAgYWRkLnBhcmFtcyA9IGxpc3QoYmlud2lkdGggPSAwLjEsIGRvdHNpemUgPSAwLjMpCiAgICAgICAgICApICsKICBzdGF0X2NvbXBhcmVfbWVhbnMoY29tcGFyaXNvbnMgPSBteV9jb21wYXJpc29ucywgbWV0aG9kID0gIndpbGNveC50ZXN0IikKZ2dwYXIocDEsIGxlZ2VuZCA9IGMoInJpZ2h0IiksIGxlZ2VuZC50aXRsZSA9ICJTeW1wdG9tcyIpCgpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWUucmF3LkFzeW1wdFN5bXB0MkcucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKCnJtKHAxKQoKY29tcGFyZV9tZWFucyhNQ1AxX3BnX21sXzIwMTUgfiBBc3ltcHRTeW1wdDJHLCBncm91cC5ieSA9ICJHZW5kZXIiLCBkYXRhID0gQUVEQi5DRUEsIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpwMSA8LSBnZ3B1YnI6OmdnYm94cGxvdChBRURCLkNFQSwgCiAgICAgICAgICAgICAgICAgIHggPSAiQXN5bXB0U3ltcHQyRyIsIHkgPSAiTUNQMV9wZ19tbF8yMDE1IiwKICAgICAgICAgICAgICAgICAgdGl0bGUgPSAiTUNQMSBwbGFxdWUgW3BnL21MXSBsZXZlbHMgcGVyIHN5bXB0b20gYnkgZ2VuZGVyIiwgCiAgICAgICAgICAgICAgICAgIHhsYWIgPSAiU3ltcHRvbXMiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF0iLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJHZW5kZXIiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gYygiI0Q1MjY3QiIsICIjMTI5MEQ5IiksCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJkb3RwbG90IiwgIyBBZGQgZG90cGxvdAogICAgICAgICAgICAgICAgICBhZGQucGFyYW1zID0gbGlzdChiaW53aWR0aCA9IDAuMSwgZG90c2l6ZSA9IDAuMykKICAgICAgICAgICkgKwogIHN0YXRfY29tcGFyZV9tZWFucyhhZXMoZ3JvdXAgPSBHZW5kZXIpLCBsYWJlbCA9ICJwLmZvcm1hdCIsICBtZXRob2QgPSAid2lsY294LnRlc3QiKQpnZ3BhcihwMSwgbGVnZW5kID0gYygicmlnaHQiKSwgbGVnZW5kLnRpdGxlID0gIlN5bXB0b21zIikKCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5yYXcuQXN5bXB0U3ltcHQyRy5ieUdlbmRlci5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKcm0ocDEpCgpgYGAKCgojIyBGb3Jlc3QgcGxvdHMKCldlIHdvdWxkIGFsc28gbGlrZSB0byB2aXN1YWxpemUgdGhlIG11bHRpdmFyaWFibGUgYW5hbHlzZXMgcmVzdWx0cy4KYGBge3IgbG9hZCBtb2RlbCBkYXRhfQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkob3Blbnhsc3gpCm1vZGVsMV9tY3AxIDwtIHJlYWQueGxzeChwYXN0ZTAoT1VUX2xvYywgIi8iLCBUb2RheSwgIi5BRURCLkNFQS5CaW4uVW5pLlByb3RlaW4uUkFOSy5TeW1wdG9tcy5NT0RFTDEueGxzeCIpKQptb2RlbDJfbWNwMSA8LSByZWFkLnhsc3gocGFzdGUwKE9VVF9sb2MsICIvIiwgVG9kYXksICIuQUVEQi5DRUEuQmluLk11bHRpLlByb3RlaW4uUkFOSy5TeW1wdG9tcy5NT0RFTDIueGxzeCIpKQptb2RlbDFfbWNwMSRtb2RlbCA8LSAidW5pdmFyaWF0ZSIKbW9kZWwyX21jcDEkbW9kZWwgPC0gIm11bHRpdmFyaWF0ZSIKCm1vZGVsc19tY3AxIDwtIHJiaW5kKG1vZGVsMV9tY3AxLCBtb2RlbDJfbWNwMSkKbW9kZWxzX21jcDEKCmBgYAoKRm9yZXN0IHBsb3QgZm9yIGV4cGVyaW1lbnQgMi4KCmBgYHtyIGZvcmVzdHBsb3QgcGxhcXVlLCBleHBlcmltZW50IDJ9CmRhdCA8LSBkYXRhLmZyYW1lKGdyb3VwID0gZmFjdG9yKGMoIkFnZSwgc2V4LWFkanVzdGVkIiwgIkFnZSwgc2V4LCBhbmQgYWRqdXN0ZWQgZm9yIHJpc2sgZmFjdG9ycyIpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVscz1jKCJBZ2UsIHNleCwgYW5kIGFkanVzdGVkIGZvciByaXNrIGZhY3RvcnMiLCAiQWdlLCBzZXgtYWRqdXN0ZWQiKSksCiAgICAgICAgICAgICAgICAgIGNlbiA9IGMobW9kZWxzX21jcDEkT1JbbW9kZWxzX21jcDEkUHJlZGljdG9yPT0iTUNQMV9wZ19tbF8yMDE1X3JhbmsiXSksCiAgICAgICAgICAgICAgICAgIGxvdyA9IGMobW9kZWxzX21jcDEkbG93OTVDSVttb2RlbHNfbWNwMSRQcmVkaWN0b3I9PSJNQ1AxX3BnX21sXzIwMTVfcmFuayJdKSwKICAgICAgICAgICAgICAgICAgaGlnaCA9IGMobW9kZWxzX21jcDEkdXA5NUNJW21vZGVsc19tY3AxJFByZWRpY3Rvcj09Ik1DUDFfcGdfbWxfMjAxNV9yYW5rIl0pKQoKZnAgPC0gZ2dwbG90KGRhdGEgPSBkYXQsIGFlcyh4ID0gZ3JvdXAsIHkgPSBjZW4sIHltaW4gPSBsb3csIHltYXggPSBoaWdoKSkgKwogIGdlb21fcG9pbnRyYW5nZShsaW5ldHlwZSA9IDIsIHNpemUgPSAxLCBjb2xvdXIgPSBjKCIjMTI5MEQ5IiwgIiM0OUEwMUQiKSkgKyAKICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQgPSAxLCBsdHkgPSAyKSArICAjIGFkZCBhIGRvdHRlZCBsaW5lIGF0IHg9MSBhZnRlciBmbGlwCiAgY29vcmRfZmxpcCh5bGltID0gYygwLjgsIDEuNykpICsgICMgZmxpcCBjb29yZGluYXRlcyAocHV0cyBsYWJlbHMgb24geSBheGlzKQogIHhsYWIoIk1vZGVsIikgKyB5bGFiKCJPUiAoOTUlIENJKSBmb3Igc3ltcHRvbWF0aWMgcGxhcXVlcyIpICsKICBnZ3RpdGxlKCJQbGFxdWUgTUNQLTEgbGV2ZWxzICgxIFNEIGluY3JlbWVudCwgZXhwLiAjMiwgbiA9IDExOTArKSIpICsKICB0aGVtZV9taW5pbWFsKCkgICMgdXNlIGEgd2hpdGUgYmFja2dyb3VuZApwcmludChmcCkKCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5leHAyLmZvcmVzdC5wZGYiKSwgcGxvdCA9IGZwKQoKcm0oZnApCmBgYAoKRm9yZXN0IHBsb3QgZm9yIGV4cGVyaW1lbnQgMS4KCmBgYHtyIGZvcmVzdHBsb3QgcGxhcXVlLCBleHBlcmltZW50IDF9CmRhdCA8LSBkYXRhLmZyYW1lKGdyb3VwID0gZmFjdG9yKGMoIkFnZSwgc2V4LWFkanVzdGVkIiwgIkFnZSwgc2V4LCBhbmQgYWRqdXN0ZWQgZm9yIHJpc2sgZmFjdG9ycyIpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVscz1jKCJBZ2UsIHNleCwgYW5kIGFkanVzdGVkIGZvciByaXNrIGZhY3RvcnMiLCAiQWdlLCBzZXgtYWRqdXN0ZWQiKSksCiAgICAgICAgICAgICAgICAgIGNlbiA9IGMobW9kZWxzX21jcDEkT1JbbW9kZWxzX21jcDEkUHJlZGljdG9yPT0iTUNQMV9yYW5rIl0pLAogICAgICAgICAgICAgICAgICBsb3cgPSBjKG1vZGVsc19tY3AxJGxvdzk1Q0lbbW9kZWxzX21jcDEkUHJlZGljdG9yPT0iTUNQMV9yYW5rIl0pLAogICAgICAgICAgICAgICAgICBoaWdoID0gYyhtb2RlbHNfbWNwMSR1cDk1Q0lbbW9kZWxzX21jcDEkUHJlZGljdG9yPT0iTUNQMV9yYW5rIl0pKQoKZnAgPC0gZ2dwbG90KGRhdGEgPSBkYXQsIGFlcyh4ID0gZ3JvdXAsIHkgPSBjZW4sIHltaW4gPSBsb3csIHltYXggPSBoaWdoKSkgKwogIGdlb21fcG9pbnRyYW5nZShsaW5ldHlwZSA9IDIsIHNpemUgPSAxLCBjb2xvdXIgPSBjKCIjMTI5MEQ5IiwgIiM0OUEwMUQiKSkgKyAKICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQgPSAxLCBsdHkgPSAyKSArICAjIGFkZCBhIGRvdHRlZCBsaW5lIGF0IHg9MSBhZnRlciBmbGlwCiAgY29vcmRfZmxpcCh5bGltID0gYygwLjgsIDEuNykpICsgICMgZmxpcCBjb29yZGluYXRlcyAocHV0cyBsYWJlbHMgb24geSBheGlzKQogIHhsYWIoIk1vZGVsIikgKyB5bGFiKCJPUiAoOTUlIENJKSBmb3Igc3ltcHRvbWF0aWMgcGxhcXVlcyIpICsKICBnZ3RpdGxlKCJQbGFxdWUgTUNQLTEgbGV2ZWxzICgxIFNEIGluY3JlbWVudCwgZXhwLiAjMSwgbiA9IDQ5MCspIikgKwogIHRoZW1lX21pbmltYWwoKSAgIyB1c2UgYSB3aGl0ZSBiYWNrZ3JvdW5kCnByaW50KGZwKQoKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLmV4cDEuZm9yZXN0LnBkZiIpLCBwbG90ID0gZnApCgpybShmcCkKYGBgCgoKIyMgTUNQMSB2cy4gY3l0b2tpbmVzIHBsYXF1ZSBsZXZlbHMgY29ycmVsYXRpb25zCgpXZSB3aWxsIHBsb3QgdGhlIGNvcnJlbGF0aW9ucyBvZiBvdGhlciBjeXRva2luZSBwbGFxdWUgbGV2ZWxzIHRvIHRoZSBNQ1AxIHBsYXF1ZSBsZXZlbHMuIFRoZXNlIGluY2x1ZGU6CgotIElMMgotIElMNAotIElMNQotIElMNgotIElMOAotIElMOQotIElMMTAKLSBJTDEyCi0gSUwxMwotIElMMjEKLSBJTkZHCi0gVE5GQQotIE1JRgotIE1DUDEKLSBNSVAxYQotIFJBTlRFUwotIE1JRwotIElQMTAKLSBFb3RheGluMQotIFRBUkMKLSBQQVJDCi0gTURDCi0gT1BHCi0gc0lDQU0xCi0gVkVHRkEKLSBUR0ZCCgpJbiBhZGRpdGlvbiB3ZSB3aWxsIGxvb2sgYXQgdGhyZWUgbWV0YWxsb3Byb3RlaW5hc2VzIHdoaWNoIHdlcmUgbWVhc3VyZWQgdXNpbmcgYW4gYWN0aXZpdHkgYXNzYXkuIAoKLSBNTVAyCi0gTU1QOAotIE1NUDkKClRoZSBwcm90ZWlucyB3ZXJlIG1lYXN1cmVkIHVzaW5nIEZBQ1MgYW5kIExVTUlORVguIEdpdmVuIHRoZSBkaWZmZXJlbnQgcGxhdGZvcm1zIHVzZWQgKEZBQ1MgdnMuIExVTUlORVgpLCB3ZSB3aWxsIGludmVyc2UgcmFuay1ub3JtYWxpemUgdGhlc2UgdmFyaWFibGVzIGFzIHdlbGwgdG8gc2NhbGUgdGhlbSB0byB0aGUgc2FtZSBzY2FsZSBhcyB0aGUgTUNQMSBwbGFxdWUgbGV2ZWxzLgoKCldlIHdpbGwgc2V0IHRoZSBtZWFzdXJlbWVudHMgdGhhdCB5aWVsZGVkICcwJyB0byBOQSwgYXMgaXQgaXMgdW5saWtlbHkgdGhhdCBhbnkgcHJvdGVpbiBldmVyIGhhcyBleGFjdGx5IDAgY29waWVzLiBUaGUgJzAnIHlpZWxkZWQgZHVyaW5nIHRoZSBleHBlcmltZW50IGFyZSBkdWUgdG8gdGhlIGxpbWl0cyBvZiB0aGUgZGV0ZWN0aW9uLgoKIyMjIFByZXBhcmUgZGF0YQpgYGB7ciBNQ1AxIHZzIEN5dG9raW5lcyBJTlJULCBwYWdlZC5wcmludD1UUlVFfQpjeXRva2luZXMgPC0gYygiSUwyIiwgIklMNCIsICJJTDUiLCAiSUw2IiwgIklMOCIsICJJTDkiLCAiSUwxMCIsICJJTDEyIiwgIklMMTMiLCAiSUwyMSIsIAogICAgICAgICAgICAgICAiSU5GRyIsICJUTkZBIiwgIk1JRiIsICJNQ1AxIiwgIk1JUDFhIiwgIlJBTlRFUyIsICJNSUciLCAiSVAxMCIsICJFb3RheGluMSIsIAogICAgICAgICAgICAgICAiVEFSQyIsICJQQVJDIiwgIk1EQyIsICJPUEciLCAic0lDQU0xIiwgIlZFR0ZBIiwgIlRHRkIiKQptZXRhbGxvcHJvdGVpbmFzZXMgPC0gYygiTU1QMiIsICJNTVA4IiwgIk1NUDkiKQoKIyBmaXggbmFtZXMKbmFtZXMoQUVEQi5DRUEpW25hbWVzKEFFREIuQ0VBKSA9PSAiVkVGR0EiXSA8LSAiVkVHRkEiCgoKcHJvdGVpbnNfb2ZfaW50ZXJlc3QgPC0gYyhjeXRva2luZXMsIG1ldGFsbG9wcm90ZWluYXNlcykKCnByb3RlaW5zX29mX2ludGVyZXN0X3JhbmsgPSB1bmxpc3QobGFwcGx5KHByb3RlaW5zX29mX2ludGVyZXN0LCBwYXN0ZTAsICJfcmFuayIpKQoKCiMgbWFrZSB2YXJpYWJsZXMgbnVtZXJpY3MoKQpBRURCLkNFQSA8LSBBRURCLkNFQSAlPiUKICBtdXRhdGVfZWFjaChmdW5zKGFzLm51bWVyaWMpLCBwcm90ZWluc19vZl9pbnRlcmVzdCkKICAKZm9yKFBST1RFSU4gaW4gMTpsZW5ndGgocHJvdGVpbnNfb2ZfaW50ZXJlc3QpKXsKCiAgIyBVQ09SQklPR1NBcWMkWiA8LSBOVUxMCiAgdmFyLnRlbXAucmFuayA9IHByb3RlaW5zX29mX2ludGVyZXN0X3JhbmtbUFJPVEVJTl0KICB2YXIudGVtcCA9IHByb3RlaW5zX29mX2ludGVyZXN0W1BST1RFSU5dCiAgCiAgY2F0KHBhc3RlMCgiXG5TZWxlY3RpbmcgIiwgdmFyLnRlbXAsICIgYW5kIHN0YW5kYXJkaXNpbmc6ICIsIHZhci50ZW1wLnJhbmssIi5cbiIpKQogIGNhdChwYXN0ZTAoIiogY2hhbmdpbmcgIiwgdmFyLnRlbXAsICIgdG8gbnVtZXJpYy5cbiIpKQoKICAjIEFFREIuQ0VBIDwtICBBRURCLkNFQSAlPiUgbXV0YXRlKEFFREIuQ0VBWyx2YXIudGVtcF0gPT0gcmVwbGFjZShBRURCLkNFQVssdmFyLnRlbXBdLCBBRURCLkNFQVssdmFyLnRlbXBdPT0wLCBOQSkpCgogIEFFREIuQ0VBWyx2YXIudGVtcF1bQUVEQi5DRUFbLHZhci50ZW1wXT09MC4wMDAwMDBdPU5BCgogIGNhdChwYXN0ZTAoIiogc3RhbmRhcmRpc2luZyAiLCB2YXIudGVtcCwgCiAgICAgICAgICAgICAiIChtZWFuOiAiLHJvdW5kKG1lYW4oIWlzLm5hKEFFREIuQ0VBWyx2YXIudGVtcF0pKSwgZGlnaXRzID0gNiksCiAgICAgICAgICAgICAiLCBuID0gIixzdW0oIWlzLm5hKEFFREIuQ0VBWyx2YXIudGVtcF0pKSwiKS5cbiIpKQogIAogIEFFREIuQ0VBIDwtIEFFREIuQ0VBICU+JQogICAgICBtdXRhdGVfYXQodmFycyh2YXIudGVtcCksIAogICAgICAgICMgbGlzdChaID0gfiAoQUVEQi5DRUFbLHZhci50ZW1wXSAtIG1lYW4oQUVEQi5DRUFbLHZhci50ZW1wXSwgbmEucm0gPSBUUlVFKSkvc2QoQUVEQi5DRUFbLHZhci50ZW1wXSwgbmEucm0gPSBUUlVFKSkKICAgICAgICBsaXN0KFJBTksgPSB+IHFub3JtKChyYW5rKEFFREIuQ0VBWyx2YXIudGVtcF0sIG5hLmxhc3QgPSAia2VlcCIpIC0gMC41KSAvIHN1bSghaXMubmEoQUVEQi5DRUFbLHZhci50ZW1wXSkpKSkKICAgICAgKQogICMgc3RyKFVDT1JCSU9HU0FxYyRaKQogIGNhdChwYXN0ZTAoIiogcmVuYW1pbmcgUkFOSyB0byAiLCB2YXIudGVtcC5yYW5rLCIuXG4iKSkKICBBRURCLkNFQVssdmFyLnRlbXAucmFua10gPC0gTlVMTAogIG5hbWVzKEFFREIuQ0VBKVtuYW1lcyhBRURCLkNFQSkgPT0gIlJBTksiXSA8LSB2YXIudGVtcC5yYW5rCn0KCiMgcm0odmFyLnRlbXAsIHZhci50ZW1wLnJhbmspCgpgYGAKCiMjIyBWaXN1YWxpemUgdHJhbnNmb3JtYXRpb25zCgpXZSB3aWxsIGp1c3QgdmlzdWFsaXplIHRoZXNlIHRyYW5zZm9ybWF0aW9ucy4KCmBgYHtyIE1DUDEgdnMgQ3l0b2tpbmVzIEhpc3RvZ3JhbXN9CnByb3RlaW5zX29mX2ludGVyZXN0X3JhbmtfbWNwMSA8LSBjKCJNQ1AxX3BnX21sXzIwMTVfcmFuayIsIHByb3RlaW5zX29mX2ludGVyZXN0X3JhbmspCgpwcm90ZWluc19vZl9pbnRlcmVzdF9tY3AxIDwtIGMoIk1DUDFfcGdfbWxfMjAxNSIsIHByb3RlaW5zX29mX2ludGVyZXN0KQoKZm9yKFBST1RFSU4gaW4gcHJvdGVpbnNfb2ZfaW50ZXJlc3RfbWNwMSl7CiAgY2F0KHBhc3RlMCgiUGxvdHRpbmcgcHJvdGVpbiAiLCBQUk9URUlOLCAiLlxuIikpCiAgCiAgcDEgPC0gZ2dwdWJyOjpnZ2hpc3RvZ3JhbShBRURCLkNFQSwgUFJPVEVJTiwKICAgICAgICAgICAgICAgICAgICAjIHkgPSAiLi5jb3VudC4uIiwKICAgICAgICAgICAgICAgICAgICBjb2xvciA9ICJ3aGl0ZSIsCiAgICAgICAgICAgICAgICAgICAgZmlsbCA9ICJHZW5kZXIiLAogICAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSBjKCIjMTI5MEQ5IiwgIiNEQjAwM0YiKSwKICAgICAgICAgICAgICAgICAgICBhZGQgPSAibWVhbiIsCiAgICAgICAgICAgICAgICAgICAgIyBydWcgPSBUUlVFLAogICAgICAgICAgICAgICAgICAgICMgYWRkLnBhcmFtcyA9ICBsaXN0KGNvbG9yID0gImJsYWNrIiwgbGluZXR5cGUgPSAyKSwKICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IHBhc3RlMChQUk9URUlOLCAiIHBsYXF1ZSBsZXZlbHMiKSwKICAgICAgICAgICAgICAgICAgICB4bGFiID0gIiIsCiAgICAgICAgICAgICAgICAgICAgZ2d0aGVtZSA9IHRoZW1lX21pbmltYWwoKSkKICBwcmludChwMSkKICAKfQoKCmZvcihQUk9URUlOIGluIHByb3RlaW5zX29mX2ludGVyZXN0X3JhbmtfbWNwMSl7CiAgY2F0KHBhc3RlMCgiUGxvdHRpbmcgcHJvdGVpbiAiLCBQUk9URUlOLCAiLlxuIikpCiAgCiAgcDEgPC0gZ2dwdWJyOjpnZ2hpc3RvZ3JhbShBRURCLkNFQSwgUFJPVEVJTiwKICAgICAgICAgICAgICAgICAgICAjIHkgPSAiLi5jb3VudC4uIiwKICAgICAgICAgICAgICAgICAgICBjb2xvciA9ICJ3aGl0ZSIsCiAgICAgICAgICAgICAgICAgICAgZmlsbCA9ICJHZW5kZXIiLAogICAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSBjKCIjMTI5MEQ5IiwgIiNEQjAwM0YiKSwKICAgICAgICAgICAgICAgICAgICBhZGQgPSAibWVhbiIsCiAgICAgICAgICAgICAgICAgICAgIyBydWcgPSBUUlVFLAogICAgICAgICAgICAgICAgICAgICMgYWRkLnBhcmFtcyA9ICBsaXN0KGNvbG9yID0gImJsYWNrIiwgbGluZXR5cGUgPSAyKSwKICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IHBhc3RlMChQUk9URUlOLCAiIHBsYXF1ZSBsZXZlbHMiKSwKICAgICAgICAgICAgICAgICAgICB4bGFiID0gImludmVyc2Utbm9ybWFsIHRyYW5zZm9ybWF0aW9uIiwKICAgICAgICAgICAgICAgICAgICBnZ3RoZW1lID0gdGhlbWVfbWluaW1hbCgpKQogIHByaW50KHAxKQogIAp9CiAgCmBgYAoKIyMjIENvcnJlbGF0aW9ucwoKSGVyZSB3ZSBjYWxjdWxhdGUgY29ycmVsYXRpb25zIGJldHdlZW4gYE1DUDFfcGdfdWdfMjAxNWAgYW5kIDI4IG90aGVyIGN5dG9raW5lcyAoaW5jbHVkaW5nIGBNQ1AxYCBhcyBtZWFzdXJlZCBpbiBleHBlcmltZW50IDEuIFdlIHVzZSBTcGVhcm1hbidzIHRlc3QsIHRodXMsIGNvcnJlbGF0aW9ucyBhIGdpdmVuIGluIF9yaG9fLiBQbGVhc2Ugbm90ZSB0aGUgaW5kaWNhdGlvbnMgb2YgbWVhc3VyZW1lbnQgbWV0aG9kczoKCi0gX0xfOiBMVU1JTkVYCi0gX0VfOiBFTElTQQotIF9hXzogYWN0aXZpdHkgYXNzYXkKCmBgYHtyIE1DUDEgdnMgQ3l0b2tpbmVzIGNvcnJlbGF0aW9uc30KIyBJbnN0YWxsYXRpb24gb2YgZ2djb3JycGxvdCgpCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaWYoIXJlcXVpcmUoZGV2dG9vbHMpKSAKICBpbnN0YWxsLnBhY2thZ2VzKCJkZXZ0b29scyIpCmRldnRvb2xzOjppbnN0YWxsX2dpdGh1Yigia2Fzc2FtYmFyYS9nZ2NvcnJwbG90IikKCmxpYnJhcnkoZ2djb3JycGxvdCkKCiMgQ3JlYXRpbmcgbWF0cml4IC0gaW52ZXJzZS1yYW5rIHRyYW5zZm9ybWF0aW9uCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQUVEQi5DRUEudGVtcCA8LSBzdWJzZXQoQUVEQi5DRUEsIAogICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdCA9IGMocHJvdGVpbnNfb2ZfaW50ZXJlc3RfcmFua19tY3AxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCgojIHN0cihBRURCLkNFQS50ZW1wKQpBRURCLkNFQS5tYXRyaXguUkFOSyA8LSBhcy5tYXRyaXgoQUVEQi5DRUEudGVtcCkKcm0oQUVEQi5DRUEudGVtcCkKCmNvcnJfYmlvbWFya2Vycy5yYW5rIDwtIHJvdW5kKGNvcihBRURCLkNFQS5tYXRyaXguUkFOSywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlID0gInBhaXJ3aXNlLmNvbXBsZXRlLm9icyIsICN0aGUgY29ycmVsYXRpb24gb3IgY292YXJpYW5jZSBiZXR3ZWVuIGVhY2ggcGFpciBvZiB2YXJpYWJsZXMgaXMgY29tcHV0ZWQgdXNpbmcgYWxsIGNvbXBsZXRlIHBhaXJzIG9mIG9ic2VydmF0aW9ucyBvbiB0aG9zZSB2YXJpYWJsZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgPSAic3BlYXJtYW4iKSwgMykKIyBjb3JyX2Jpb21hcmtlcnMucmFuawoKcmVuYW1lX3Byb3RlaW5zX29mX2ludGVyZXN0X21jcDEgPC0gYygiTUNQMSAoTCwgZXhwMiwgcGcvbUwpIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJTDIiLCAiSUw0IiwgIklMNSIsICJJTDYiLCAiSUw4IiwgIklMOSIsICJJTDEwIiwgIklMMTIiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIklMMTMgKEwpIiwgIklMMjEgKEwpIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJTkZHIiwgIlRORkEiLCAiTUlGIChMKSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTUNQMSAoTCwgZXhwMSkiLCAiTUlQMWEgKEwpIiwgIlJBTlRFUyAoTCkiLCAiTUlHIChMKSIsICJJUDEwIChMKSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRW90YXhpbjEgKEwpIiwgIlRBUkMgKEwpIiwgIlBBUkMgKEwpIiwgIk1EQyAoTCkiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9QRyAoTCkiLCAic0lDQU0xIChMKSIsICJWRUdGQSAoRSkiLCAiVEdGQiAoRSkiLCAiTU1QMiAoYSkiLCAiTU1QOCAoYSkiLCAiTU1QOSAoYSkiKQpjb2xuYW1lcyhjb3JyX2Jpb21hcmtlcnMucmFuaykgPC0gYyhyZW5hbWVfcHJvdGVpbnNfb2ZfaW50ZXJlc3RfbWNwMSkKcm93bmFtZXMoY29ycl9iaW9tYXJrZXJzLnJhbmspIDwtIGMocmVuYW1lX3Byb3RlaW5zX29mX2ludGVyZXN0X21jcDEpCgpjb3JyX2Jpb21hcmtlcnNfcC5yYW5rIDwtIGdnY29ycnBsb3Q6OmNvcl9wbWF0KEFFREIuQ0VBLm1hdHJpeC5SQU5LLCB1c2UgPSAicGFpcndpc2UuY29tcGxldGUub2JzIiwgbWV0aG9kID0gInNwZWFybWFuIikKCiMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKwojIGZsYXR0ZW5Db3JyTWF0cml4CiMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKwojIGNvcm1hdCA6IG1hdHJpeCBvZiB0aGUgY29ycmVsYXRpb24gY29lZmZpY2llbnRzCiMgcG1hdCA6IG1hdHJpeCBvZiB0aGUgY29ycmVsYXRpb24gcC12YWx1ZXMKZmxhdHRlbkNvcnJNYXRyaXggPC0gZnVuY3Rpb24oY29ybWF0LCBwbWF0KSB7CiAgdXQgPC0gdXBwZXIudHJpKGNvcm1hdCkKICBkYXRhLmZyYW1lKAogICAgcm93ID0gcm93bmFtZXMoY29ybWF0KVtyb3coY29ybWF0KVt1dF1dLAogICAgY29sdW1uID0gcm93bmFtZXMoY29ybWF0KVtjb2woY29ybWF0KVt1dF1dLAogICAgY29yICA9KGNvcm1hdClbdXRdLAogICAgcCA9IHBtYXRbdXRdCiAgICApCn0KCmNvcnJfYmlvbWFya2Vycy5yYW5rLmRmIDwtIGZsYXR0ZW5Db3JyTWF0cml4KGNvcnJfYmlvbWFya2Vycy5yYW5rLCBjb3JyX2Jpb21hcmtlcnNfcC5yYW5rKQoKCm5hbWVzKGNvcnJfYmlvbWFya2Vycy5yYW5rLmRmKVtuYW1lcyhjb3JyX2Jpb21hcmtlcnMucmFuay5kZikgPT0gInJvdyJdIDwtICJDeXRva2luZV9YIgpuYW1lcyhjb3JyX2Jpb21hcmtlcnMucmFuay5kZilbbmFtZXMoY29ycl9iaW9tYXJrZXJzLnJhbmsuZGYpID09ICJjb2x1bW4iXSA8LSAiQ3l0b2tpbmVZIgpuYW1lcyhjb3JyX2Jpb21hcmtlcnMucmFuay5kZilbbmFtZXMoY29ycl9iaW9tYXJrZXJzLnJhbmsuZGYpID09ICJjb3IiXSA8LSAiU3BlYXJtYW5SaG8iCgpEVDo6ZGF0YXRhYmxlKGNvcnJfYmlvbWFya2Vycy5yYW5rLmRmKQoKZndyaXRlKGNvcnJfYmlvbWFya2Vycy5yYW5rLmRmLCBmaWxlID0gcGFzdGUwKE9VVF9sb2MsICIvIixUb2RheSwiLmNvcnJlbGF0aW9uX2N5dG9raW5lcy50eHQiKSkKCmBgYAoKYGBge3IgTUNQMSB2cyBDeXRva2luZXMgaGVhdG1hcH0KIyBBZGQgY29ycmVsYXRpb24gY29lZmZpY2llbnRzCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBhcmd1bWVudCBsYWIgPSBUUlVFCnAxIDwtIGdnY29ycnBsb3QoY29ycl9iaW9tYXJrZXJzLnJhbmssIAogICAgICAgICAgIG1ldGhvZCA9ICJzcXVhcmUiLCAKICAgICAgICAgICB0eXBlID0gImxvd2VyIiwKICAgICAgICAgICB0aXRsZSA9ICJDcm9zcyBiaW9tYXJrZXIgY29ycmVsYXRpb25zIiwgCiAgICAgICAgICAgc2hvdy5sZWdlbmQgPSBUUlVFLCBsZWdlbmQudGl0bGUgPSBicXVvdGUoIlNwZWFybWFuJ3Mifml0YWxpYyhyaG8pKSwKICAgICAgICAgICBnZ3RoZW1lID0gZ2dwbG90Mjo6dGhlbWVfbWluaW1hbCwgb3V0bGluZS5jb2xvciA9ICIjRkZGRkZGIiwKICAgICAgICAgICBzaG93LmRpYWcgPSBUUlVFLAogICAgICAgICAgIGhjLm9yZGVyID0gRkFMU0UsIAogICAgICAgICAgIGxhYiA9IEZBTFNFLAogICAgICAgICAgIGRpZ2l0cyA9IDMsCiAgICAgICAgICAgdGwuY2V4ID0gNiwKICAgICAgICAgICAjIHhsYWIgPSBjKCJNQ1AxIiksCiAgICAgICAgICAgIyBwLm1hdCA9IGNvcnJfYmlvbWFya2Vyc19wLnJhbmssIHNpZy5sZXZlbCA9IDAuMDUsCiAgICAgICAgICAgY29sb3JzID0gYygiIzEyOTBEOSIsICIjRkZGRkZGIiwgIiNFNTU3MzgiKSkKcDEKZ2dzYXZlKGZpbGVuYW1lID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsIFRvZGF5LCAiLmNvcnJlbGF0aW9uX2N5dG9raW5lcy5wbmciKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQpnZ3NhdmUoZmlsZW5hbWUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIiwgVG9kYXksICIuY29ycmVsYXRpb25fY3l0b2tpbmVzLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpybShwMSkKCmBgYAoKV2hpbGUgdmlzdWFsbHkgYWN0cmFjdGl2ZSB3ZSBhcmUgbm90IG5lY2Vzc2FyaWx5IGludGVyZXN0ZWQgaW4gdGhlIGNvcnJlbGF0aW9ucyBiZXR3ZWVuIGFsbCB0aGUgY3l0b2tpbmVzLCByYXRoZXIgb2YgTUNQMSB3aXRoIG90aGVyIGN5dG9raW5lcyBvbmx5LgoKYGBge3IgTUNQMSB2cyBDeXRva2luZXMgYmFycGxvdH0KdGVtcCA8LSBzdWJzZXQoY29ycl9iaW9tYXJrZXJzLnJhbmsuZGYsIEN5dG9raW5lX1ggPT0gIk1DUDEgKEwsIGV4cDIsIHBnL21MKSIgKQp0ZW1wJHBfbG9nMTAgPC0gLWxvZzEwKHRlbXAkcCkKcF90aHJlc2hvbGQgPC0gLWxvZzEwKDAuMDUvMjkpCnBfdGhyZXNob2xkCnAxIDwtIGdnYmFycGxvdCh0ZW1wLCB4ID0gIkN5dG9raW5lWSIsIHkgPSAiU3BlYXJtYW5SaG8iLAogICAgICAgICAgZmlsbCA9ICJDeXRva2luZVkiLCAgICAgICAgICAgICAgICMgY2hhbmdlIGZpbGwgY29sb3IgYnkgY3lsCiAgICAgICAgICAjIGNvbG9yID0gIndoaXRlIiwgICAgICAgICAgICAjIFNldCBiYXIgYm9yZGVyIGNvbG9ycyB0byB3aGl0ZQogICAgICAgICAgcGFsZXR0ZSA9IHVpdGhvZl9jb2xvciwgICAgICAgICAgICAjIGpjbyBqb3VybmFsIGNvbG9yIHBhbGV0dC4gc2VlID9nZ3BhcgogICAgICAgICAgeGxhYiA9ICJDeXRva2luZSIsCiAgICAgICAgICB5bGFiID0gZXhwcmVzc2lvbigiU3BlYXJtYW4ncyJ+aXRhbGljKHJobykpLAogICAgICAgICAgc29ydC52YWwgPSAiZGVzYyIsICAgICAgICAgICMgU29ydCB0aGUgdmFsdWUgaW4gZHNjZW5kaW5nIG9yZGVyCiAgICAgICAgICBzb3J0LmJ5Lmdyb3VwcyA9IEZBTFNFLCAgICAgIyBEb24ndCBzb3J0IGluc2lkZSBlYWNoIGdyb3VwCiAgICAgICAgICB4LnRleHQuYW5nbGUgPSA0NSwgIyBSb3RhdGUgdmVydGljYWxseSB4IGF4aXMgdGV4dHMKICAgICAgICAgIGNleCA9IDAuOAogICAgICAgICAgKQpnZ3BhcihwMSwgbGVnZW5kID0gImJvdHRvbSIsIAogICAgICBsZWdlbmQudGl0bGUgPSAiIikgKwogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KHNpemUgPSA5KSwKICAgICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChzaXplID0gOSkpIAoKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLmJhcnBsb3RfcGdtTC5NQ1AxX2V4cDJfdnNfQ3l0b2tpbmVzLnBuZyIpLCBwbG90ID0gbGFzdF9wbG90KCkpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5iYXJwbG90X3BnbUwuTUNQMV9leHAyX3ZzX0N5dG9raW5lcy5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQpybShwMSkKCnRlbXAgPC0gc3Vic2V0KGNvcnJfYmlvbWFya2Vycy5yYW5rLmRmLCBDeXRva2luZV9YID09ICJNQ1AxIChMLCBleHAxKSIgKQp0ZW1wJHBfbG9nMTAgPC0gLWxvZzEwKHRlbXAkcCkKcF90aHJlc2hvbGQgPC0gLWxvZzEwKDAuMDUvMjkpCnBfdGhyZXNob2xkCnAxIDwtIGdnYmFycGxvdCh0ZW1wLCB4ID0gIkN5dG9raW5lWSIsIHkgPSAiU3BlYXJtYW5SaG8iLAogICAgICAgICAgZmlsbCA9ICJDeXRva2luZVkiLCAgICAgICAgICAgICAgICMgY2hhbmdlIGZpbGwgY29sb3IgYnkgY3lsCiAgICAgICAgICAjIGNvbG9yID0gIndoaXRlIiwgICAgICAgICAgICAjIFNldCBiYXIgYm9yZGVyIGNvbG9ycyB0byB3aGl0ZQogICAgICAgICAgcGFsZXR0ZSA9IHVpdGhvZl9jb2xvciwgICAgICAgICAgICAjIGpjbyBqb3VybmFsIGNvbG9yIHBhbGV0dC4gc2VlID9nZ3BhcgogICAgICAgICAgeGxhYiA9ICJDeXRva2luZSIsCiAgICAgICAgICB5bGFiID0gZXhwcmVzc2lvbigiU3BlYXJtYW4ncyJ+aXRhbGljKHJobykpLAogICAgICAgICAgc29ydC52YWwgPSAiZGVzYyIsICAgICAgICAgICMgU29ydCB0aGUgdmFsdWUgaW4gZHNjZW5kaW5nIG9yZGVyCiAgICAgICAgICBzb3J0LmJ5Lmdyb3VwcyA9IEZBTFNFLCAgICAgIyBEb24ndCBzb3J0IGluc2lkZSBlYWNoIGdyb3VwCiAgICAgICAgICB4LnRleHQuYW5nbGUgPSA0NSwgIyBSb3RhdGUgdmVydGljYWxseSB4IGF4aXMgdGV4dHMKICAgICAgICAgIGNleCA9IDAuOAogICAgICAgICAgKQpnZ3BhcihwMSwgbGVnZW5kID0gImJvdHRvbSIsIAogICAgICBsZWdlbmQudGl0bGUgPSAiIikgKwogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KHNpemUgPSA5KSwKICAgICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChzaXplID0gOSkpIAoKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLmJhcnBsb3RfcGdtTC5NQ1AxX2V4cDFfdnNfQ3l0b2tpbmVzLnBuZyIpLCBwbG90ID0gbGFzdF9wbG90KCkpCmdnc2F2ZShmaWxlID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5NQ1AxLnBsYXF1ZS5iYXJwbG90X3BnbUwuTUNQMV9leHAxX3ZzX0N5dG9raW5lcy5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKcm0ocDEpCgpgYGAKCkFub3RoZXIgdmVyc2lvbiAtIHByb2JhYmx5IG5vdCBnb29kLiAKYGBge3IgTUNQMSB2cyBDeXRva2luZXMgZG90Y2hhcnR9CnRlbXAgPC0gc3Vic2V0KGNvcnJfYmlvbWFya2Vycy5yYW5rLmRmLCBDeXRva2luZV9YID09ICJNQ1AxIChMLCBleHAyLCBwZy9tTCkiICkKdGVtcCRwX2xvZzEwIDwtIC1sb2cxMCh0ZW1wJHApCnBfdGhyZXNob2xkIDwtIC1sb2cxMCgwLjA1LzI5KQpwX3RocmVzaG9sZApwMSA8LSBnZ2RvdGNoYXJ0KHRlbXAsIHggPSAiQ3l0b2tpbmVZIiwgeSA9ICJwX2xvZzEwIiwKICAgICAgICAgICBjb2xvciA9ICJDeXRva2luZVkiLCAjZmlsbCA9ICJDeXRva2luZVkiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgQ29sb3IgYnkgZ3JvdXBzCiAgICAgICAgICAgcGFsZXR0ZSA9IHVpdGhvZl9jb2xvciwgIyBDdXN0b20gY29sb3IgcGFsZXR0ZQogICAgICAgICAgIHhsYWIgPSAiQ3l0b2tpbmUiLAogICAgICAgICAgIHlsYWIgPSBleHByZXNzaW9uKGxvZ1sxMF1+Iigifml0YWxpYyhwKX4iKS12YWx1ZSIpLAogICAgICAgICAgIHlsaW0gPSBjKDAsIDkpLAogICAgICAgICAgIHNvcnRpbmcgPSAiZGVzY2VuZGluZyIsICAgICAgICAgICAgICAgICAgICAgICAjIFNvcnQgdmFsdWUgaW4gZGVzY2VuZGluZyBvcmRlcgogICAgICAgICAgIGFkZCA9ICJzZWdtZW50cyIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEFkZCBzZWdtZW50cyBmcm9tIHkgPSAwIHRvIGRvdHMKICAgICAgICAgICByb3RhdGUgPSBGQUxTRSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgUm90YXRlIHZlcnRpY2FsbHkKICAgICAgICAgICAjIGdyb3VwID0gIkN5dG9raW5lWSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIE9yZGVyIGJ5IGdyb3VwcwogICAgICAgICAgIGRvdC5zaXplID0gOCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIExhcmdlIGRvdCBzaXplCiAgICAgICAgICAgbGFiZWwgPSByb3VuZCh0ZW1wJFNwZWFybWFuUmhvLCBkaWdpdHMgPSAzKSwgICAgICAgICAgICAgICAgICAgICAgICAjIEFkZCBtcGcgdmFsdWVzIGFzIGRvdCBsYWJlbHMKICAgICAgICAgICBmb250LmxhYmVsID0gbGlzdChjb2xvciA9ICJ3aGl0ZSIsIHNpemUgPSA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2anVzdCA9IDAuNSkgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgKQpnZ3BhcihwMSwgbGVnZW5kID0gIiIsIAogICAgICBsZWdlbmQudGl0bGUgPSAiIikgKwogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KHNpemUgPSA5KSwKICAgICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChzaXplID0gOSkpCgpnZ3NhdmUoZmlsZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLFRvZGF5LCIuQUVEQi5DRUEuTUNQMS5wbGFxdWUuZG90Y2hhcnQuTUNQMV92c19DeXRva2luZXMucG5nIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKZ2dzYXZlKGZpbGUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLk1DUDEucGxhcXVlLmRvdGNoYXJ0Lk1DUDFfdnNfQ3l0b2tpbmVzLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpybSh0ZW1wLCBwMSkKCmBgYAoKCiMjIE1DUDEgdnMuIGN5dG9raW5lcyBwbGFxdWUgbGV2ZWxzIGBsbSgpYAoKIyMjIE1vZGVsIDEKCkluIHRoaXMgbW9kZWwgd2UgY29ycmVjdCBmb3IgX0FnZV8sIF9HZW5kZXJfLCBhbmQgX3llYXIgb2Ygc3VyZ2VyeV8uCgpIZXJlIHdlIHVzZSB0aGUgaW52ZXJzZS1yYW5rIG5vcm1hbGl6ZWQgZGF0YSAtIHZpc3VhbGx5IHRoaXMgaXMgbW9yZSBub3JtYWxseSBkaXN0cmlidXRlZC4KCkFuYWx5c2lzIG9mIHBsYXF1ZSBjeXRva2luZXMgdHJhaXRzIGFzIGEgZnVuY3Rpb24gb2YgcGxhcXVlIE1DUDEgbGV2ZWxzLgpgYGB7ciBDcm9zc1NlYzogQ3l0b2tpbmVzIC0gbGluZWFyIHJlZ3Jlc3Npb24gTU9ERUwxIFJBTkssIHBhZ2VkLnByaW50PVRSVUV9CgpHTE0ucmVzdWx0cyA8LSBkYXRhLmZyYW1lKG1hdHJpeChOQSwgbmNvbCA9IDE1LCBucm93ID0gMCkpCmNhdCgiUnVubmluZyBsaW5lYXIgcmVncmVzc2lvbi4uLlxuIikKZm9yIChwcm90ZWluIGluIDE6bGVuZ3RoKFRSQUlUUy5QUk9URUlOLlJBTkspKSB7CiAgUFJPVEVJTiA9IFRSQUlUUy5QUk9URUlOLlJBTktbcHJvdGVpbl0KICBjYXQocGFzdGUwKCJcbkFuYWx5c2lzIG9mICIsUFJPVEVJTiwiLlxuIikpCiAgZm9yICh0cmFpdCBpbiAxOmxlbmd0aChwcm90ZWluc19vZl9pbnRlcmVzdF9yYW5rKSkgewogICAgVFJBSVQgPSBwcm90ZWluc19vZl9pbnRlcmVzdF9yYW5rW3RyYWl0XQogICAgY2F0KHBhc3RlMCgiXG4tIHByb2Nlc3NpbmcgIixUUkFJVCwiXG5cbiIpKQogICAgY3VycmVudERGIDwtIGFzLmRhdGEuZnJhbWUoQUVEQi5DRUEgJT4lCiAgICAgIGRwbHlyOjpzZWxlY3QoLiwgUFJPVEVJTiwgVFJBSVQsIENPVkFSSUFURVNfTTEpICU+JQogICAgICBmaWx0ZXIoY29tcGxldGUuY2FzZXMoLikpKSAlPiUKICAgICAgZmlsdGVyX2lmKH5pcy5udW1lcmljKC4pLCBhbGxfdmFycyghaXMuaW5maW5pdGUoLikpKQogICAgIyBmb3IgZGVidWcKICAgICMgcHJpbnQoRFQ6OmRhdGF0YWJsZShjdXJyZW50REYpKQogICAgIyBwcmludChucm93KGN1cnJlbnRERikpCiAgICAjIHByaW50KHN0cihjdXJyZW50REYpKQogICAgIyMjIHVuaXZhcmlhdGUKICAgIGZpdCA8LSBsbShjdXJyZW50REZbLFBST1RFSU5dIH4gY3VycmVudERGWyxUUkFJVF0gKyBBZ2UgKyBHZW5kZXIgKyBPUmRhdGVfeWVhciwgZGF0YSA9IGN1cnJlbnRERikKICAgIG1vZGVsX3N0ZXAgPC0gc3RlcEFJQyhmaXQsIGRpcmVjdGlvbiA9ICJib3RoIiwgdHJhY2UgPSBGQUxTRSkKICAgIHByaW50KG1vZGVsX3N0ZXApCiAgICBwcmludChzdW1tYXJ5KGZpdCkpCgogICAgR0xNLnJlc3VsdHMuVEVNUCA8LSBkYXRhLmZyYW1lKG1hdHJpeChOQSwgbmNvbCA9IDE1LCBucm93ID0gMCkpCiAgICBHTE0ucmVzdWx0cy5URU1QWzEsXSA9IEdMTS5DT04oZml0LCAiQUVEQi5DRUEiLCBQUk9URUlOLCBUUkFJVCwgdmVyYm9zZSA9IFRSVUUpCiAgICBHTE0ucmVzdWx0cyA9IHJiaW5kKEdMTS5yZXN1bHRzLCBHTE0ucmVzdWx0cy5URU1QKQogIH0KfQpjYXQoIkVkaXQgdGhlIGNvbHVtbiBuYW1lcy4uLlxuIikKY29sbmFtZXMoR0xNLnJlc3VsdHMpID0gYygiRGF0YXNldCIsICJQcmVkaWN0b3IiLCAiVHJhaXQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICJCZXRhIiwgInMuZS5tLiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIk9SIiwgImxvdzk1Q0kiLCAidXA5NUNJIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAiVC12YWx1ZSIsICJQLXZhbHVlIiwgInJeMiIsICJyXjJfYWRqIiwgIkFFX04iLCAiTW9kZWxfTiIsICJQZXJjX01pc3MiKQoKY2F0KCJDb3JyZWN0IHRoZSB2YXJpYWJsZSB0eXBlcy4uLlxuIikKR0xNLnJlc3VsdHMkQmV0YSA8LSBhcy5udW1lcmljKEdMTS5yZXN1bHRzJEJldGEpCkdMTS5yZXN1bHRzJHMuZS5tLiA8LSBhcy5udW1lcmljKEdMTS5yZXN1bHRzJHMuZS5tLikKR0xNLnJlc3VsdHMkT1IgPC0gYXMubnVtZXJpYyhHTE0ucmVzdWx0cyRPUikKR0xNLnJlc3VsdHMkbG93OTVDSSA8LSBhcy5udW1lcmljKEdMTS5yZXN1bHRzJGxvdzk1Q0kpCkdMTS5yZXN1bHRzJHVwOTVDSSA8LSBhcy5udW1lcmljKEdMTS5yZXN1bHRzJHVwOTVDSSkKR0xNLnJlc3VsdHMkYFQtdmFsdWVgIDwtIGFzLm51bWVyaWMoR0xNLnJlc3VsdHMkYFQtdmFsdWVgKQpHTE0ucmVzdWx0cyRgUC12YWx1ZWAgPC0gYXMubnVtZXJpYyhHTE0ucmVzdWx0cyRgUC12YWx1ZWApCkdMTS5yZXN1bHRzJGByXjJgIDwtIGFzLm51bWVyaWMoR0xNLnJlc3VsdHMkYHJeMmApCkdMTS5yZXN1bHRzJGByXjJfYWRqYCA8LSBhcy5udW1lcmljKEdMTS5yZXN1bHRzJGByXjJfYWRqYCkKR0xNLnJlc3VsdHMkYEFFX05gIDwtIGFzLm51bWVyaWMoR0xNLnJlc3VsdHMkYEFFX05gKQpHTE0ucmVzdWx0cyRgTW9kZWxfTmAgPC0gYXMubnVtZXJpYyhHTE0ucmVzdWx0cyRgTW9kZWxfTmApCkdMTS5yZXN1bHRzJGBQZXJjX01pc3NgIDwtIGFzLm51bWVyaWMoR0xNLnJlc3VsdHMkYFBlcmNfTWlzc2ApCgpgYGAKCmBgYHtyIENyb3NzU2VjOiBDeXRva2luZXMgLSBsaW5lYXIgcmVncmVzc2lvbiBNT0RFTDEgUkFOSyBXcml0aW5nfQpEVDo6ZGF0YXRhYmxlKEdMTS5yZXN1bHRzKQoKIyBTYXZlIHRoZSBkYXRhCmNhdCgiV3JpdGluZyByZXN1bHRzIHRvIEV4Y2VsLWZpbGUuLi5cbiIpCiMjIyBVbml2YXJpYXRlCmxpYnJhcnkob3Blbnhsc3gpCndyaXRlLnhsc3goR0xNLnJlc3VsdHMsCiAgICAgICAgICAgZmlsZSA9IHBhc3RlMChPVVRfbG9jLCAiLyIsVG9kYXksIi5BRURCLkNFQS5Db24uVW5pLk1DUDFfUGxhcXVlLkN5dG9raW5lc19QbGFxdWVzLlJBTksuTU9ERUwxLnhsc3giKSwKICAgICAgICAgICByb3cubmFtZXMgPSBGQUxTRSwgY29sLm5hbWVzID0gVFJVRSwgc2hlZXROYW1lID0gIkNvbi5VbmkuUGxhcXVlUGhlbm8iKQojIFJlbW92aW5nIGludGVybWVkaWF0ZXMKY2F0KCJSZW1vdmluZyBpbnRlcm1lZGlhdGUgZmlsZXMuLi5cbiIpCnJtKFRSQUlULCB0cmFpdCwgY3VycmVudERGLCBHTE0ucmVzdWx0cywgR0xNLnJlc3VsdHMuVEVNUCwgZml0LCBtb2RlbF9zdGVwKQoKCmBgYAoKCgojIyMgTW9kZWwgMgoKSW4gdGhpcyBtb2RlbCB3ZSBjb3JyZWN0IGZvciBfQWdlXywgX0dlbmRlcl8sIF95ZWFyIG9mIHN1cmdlcnlfLCBfSHlwZXJ0ZW5zaW9uIHN0YXR1c18sIF9EaWFiZXRlcyBzdGF0dXNfLCBfY3VycmVudCBzbW9rZXIgc3RhdHVzXywgX2xpcGlkLWxvd2VyaW5nIGRydWdzIChMTERzKV8sIF9hbnRpcGxhdGVsZXQgbWVkaWNhdGlvbl8sIF9lR0ZSIChNRFJEKV8sIF9CTUlfLCBfTWVkSHhfQ1ZEXyAoY29tYmluYXRpb24gb2YgX0NBRCBoaXN0b3J5XywgX3N0cm9rZSBoaXN0b3J5XywgYW5kIF9wZXJpcGhlcmFsIGludGVydmVudGlvbnNfKSwgYW5kIF9zdGVub3Npc18uCgpIZXJlIHdlIHVzZSB0aGUgaW52ZXJzZS1yYW5rIG5vcm1hbGl6ZWQgZGF0YSAtIHZpc3VhbGx5IHRoaXMgaXMgbW9yZSBub3JtYWxseSBkaXN0cmlidXRlZC4KCkFuYWx5c2lzIG9mIHBsYXF1ZSBjeXRva2luZXMgYXMgYSBmdW5jdGlvbiBvZiBwbGFxdWUgTUNQMSBsZXZlbHMuCmBgYHtyIENyb3NzU2VjOiBDeXRva2luZXMgLSBsaW5lYXIgcmVncmVzc2lvbiBNT0RFTDIgUkFOSywgcGFnZWQucHJpbnQ9VFJVRX0KCkdMTS5yZXN1bHRzIDwtIGRhdGEuZnJhbWUobWF0cml4KE5BLCBuY29sID0gMTUsIG5yb3cgPSAwKSkKY2F0KCJSdW5uaW5nIGxpbmVhciByZWdyZXNzaW9uLi4uXG4iKQpmb3IgKHByb3RlaW4gaW4gMTpsZW5ndGgoVFJBSVRTLlBST1RFSU4uUkFOSykpIHsKICBQUk9URUlOID0gVFJBSVRTLlBST1RFSU4uUkFOS1twcm90ZWluXQogIGNhdChwYXN0ZTAoIlxuQW5hbHlzaXMgb2YgIixQUk9URUlOLCIuXG4iKSkKICBmb3IgKHRyYWl0IGluIDE6bGVuZ3RoKHByb3RlaW5zX29mX2ludGVyZXN0X3JhbmspKSB7CiAgICBUUkFJVCA9IHByb3RlaW5zX29mX2ludGVyZXN0X3JhbmtbdHJhaXRdCiAgICBjYXQocGFzdGUwKCJcbi0gcHJvY2Vzc2luZyAiLFRSQUlULCJcblxuIikpCiAgICBjdXJyZW50REYgPC0gYXMuZGF0YS5mcmFtZShBRURCLkNFQSAlPiUKICAgICAgZHBseXI6OnNlbGVjdCguLCBQUk9URUlOLCBUUkFJVCwgQ09WQVJJQVRFU19NMikgJT4lCiAgICAgIGZpbHRlcihjb21wbGV0ZS5jYXNlcyguKSkpICU+JQogICAgICBmaWx0ZXJfaWYofmlzLm51bWVyaWMoLiksIGFsbF92YXJzKCFpcy5pbmZpbml0ZSguKSkpCiAgICAjIGZvciBkZWJ1ZwogICAgIyBwcmludChEVDo6ZGF0YXRhYmxlKGN1cnJlbnRERikpCiAgICAjIHByaW50KG5yb3coY3VycmVudERGKSkKICAgICMgcHJpbnQoc3RyKGN1cnJlbnRERikpCiAgICAjIyMgdW5pdmFyaWF0ZQogICAgZml0IDwtIGxtKGN1cnJlbnRERlssUFJPVEVJTl0gfiBjdXJyZW50REZbLFRSQUlUXSArIEFnZSArIEdlbmRlciArIE9SZGF0ZV95ZWFyICsgCiAgICAgICAgICAgICAgICBIeXBlcnRlbnNpb24uY29tcG9zaXRlICsgRGlhYmV0ZXNTdGF0dXMgKyBTbW9rZXJTdGF0dXMgKyAKICAgICAgICAgICAgICAgIE1lZC5TdGF0aW4uTExEICsgTWVkLmFsbC5hbnRpcGxhdGVsZXQgKyBHRlJfTURSRCArIEJNSSArIAogICAgICAgICAgICAgICAgTWVkSHhfQ1ZEICsgc3Rlbm9zZSwgCiAgICAgICAgICAgICAgZGF0YSA9IGN1cnJlbnRERikKICAgIG1vZGVsX3N0ZXAgPC0gc3RlcEFJQyhmaXQsIGRpcmVjdGlvbiA9ICJib3RoIiwgdHJhY2UgPSBGQUxTRSkKICAgIHByaW50KG1vZGVsX3N0ZXApCiAgICBwcmludChzdW1tYXJ5KGZpdCkpCiAgICAKICAgIEdMTS5yZXN1bHRzLlRFTVAgPC0gZGF0YS5mcmFtZShtYXRyaXgoTkEsIG5jb2wgPSAxNSwgbnJvdyA9IDApKQogICAgR0xNLnJlc3VsdHMuVEVNUFsxLF0gPSBHTE0uQ09OKGZpdCwgIkFFREIuQ0VBIiwgUFJPVEVJTiwgVFJBSVQsIHZlcmJvc2UgPSBUUlVFKQogICAgR0xNLnJlc3VsdHMgPSByYmluZChHTE0ucmVzdWx0cywgR0xNLnJlc3VsdHMuVEVNUCkKICB9Cn0KY2F0KCJFZGl0IHRoZSBjb2x1bW4gbmFtZXMuLi5cbiIpCmNvbG5hbWVzKEdMTS5yZXN1bHRzKSA9IGMoIkRhdGFzZXQiLCAiUHJlZGljdG9yIiwgIlRyYWl0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAiQmV0YSIsICJzLmUubS4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICJPUiIsICJsb3c5NUNJIiwgInVwOTVDSSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIlQtdmFsdWUiLCAiUC12YWx1ZSIsICJyXjIiLCAicl4yX2FkaiIsICJBRV9OIiwgIk1vZGVsX04iLCAiUGVyY19NaXNzIikKCmNhdCgiQ29ycmVjdCB0aGUgdmFyaWFibGUgdHlwZXMuLi5cbiIpCkdMTS5yZXN1bHRzJEJldGEgPC0gYXMubnVtZXJpYyhHTE0ucmVzdWx0cyRCZXRhKQpHTE0ucmVzdWx0cyRzLmUubS4gPC0gYXMubnVtZXJpYyhHTE0ucmVzdWx0cyRzLmUubS4pCkdMTS5yZXN1bHRzJE9SIDwtIGFzLm51bWVyaWMoR0xNLnJlc3VsdHMkT1IpCkdMTS5yZXN1bHRzJGxvdzk1Q0kgPC0gYXMubnVtZXJpYyhHTE0ucmVzdWx0cyRsb3c5NUNJKQpHTE0ucmVzdWx0cyR1cDk1Q0kgPC0gYXMubnVtZXJpYyhHTE0ucmVzdWx0cyR1cDk1Q0kpCkdMTS5yZXN1bHRzJGBULXZhbHVlYCA8LSBhcy5udW1lcmljKEdMTS5yZXN1bHRzJGBULXZhbHVlYCkKR0xNLnJlc3VsdHMkYFAtdmFsdWVgIDwtIGFzLm51bWVyaWMoR0xNLnJlc3VsdHMkYFAtdmFsdWVgKQpHTE0ucmVzdWx0cyRgcl4yYCA8LSBhcy5udW1lcmljKEdMTS5yZXN1bHRzJGByXjJgKQpHTE0ucmVzdWx0cyRgcl4yX2FkamAgPC0gYXMubnVtZXJpYyhHTE0ucmVzdWx0cyRgcl4yX2FkamApCkdMTS5yZXN1bHRzJGBBRV9OYCA8LSBhcy5udW1lcmljKEdMTS5yZXN1bHRzJGBBRV9OYCkKR0xNLnJlc3VsdHMkYE1vZGVsX05gIDwtIGFzLm51bWVyaWMoR0xNLnJlc3VsdHMkYE1vZGVsX05gKQpHTE0ucmVzdWx0cyRgUGVyY19NaXNzYCA8LSBhcy5udW1lcmljKEdMTS5yZXN1bHRzJGBQZXJjX01pc3NgKQoKYGBgCgpgYGB7ciBDcm9zc1NlYzogQ3l0b2tpbmVzIC0gbGluZWFyIHJlZ3Jlc3Npb24gTU9ERUwyIFJBTkssIHdyaXRpbmd9CkRUOjpkYXRhdGFibGUoR0xNLnJlc3VsdHMpCgojIFNhdmUgdGhlIGRhdGEKY2F0KCJXcml0aW5nIHJlc3VsdHMgdG8gRXhjZWwtZmlsZS4uLlxuIikKIyMjIFVuaXZhcmlhdGUKbGlicmFyeShvcGVueGxzeCkKd3JpdGUueGxzeChHTE0ucmVzdWx0cywKICAgICAgICAgICBmaWxlID0gcGFzdGUwKE9VVF9sb2MsICIvIixUb2RheSwiLkFFREIuQ0VBLkNvbi5NdWx0aS5NQ1AxX1BsYXF1ZS5DeXRva2luZXNfUGxhcXVlcy5SQU5LLk1PREVMMi54bHN4IiksCiAgICAgICAgICAgcm93Lm5hbWVzID0gRkFMU0UsIGNvbC5uYW1lcyA9IFRSVUUsIHNoZWV0TmFtZSA9ICJDb24uTXVsdGkuUGxhcXVlUGhlbm8iKQojIFJlbW92aW5nIGludGVybWVkaWF0ZXMKY2F0KCJSZW1vdmluZyBpbnRlcm1lZGlhdGUgZmlsZXMuLi5cbiIpCnJtKFRSQUlULCB0cmFpdCwgY3VycmVudERGLCBHTE0ucmVzdWx0cywgR0xNLnJlc3VsdHMuVEVNUCwgZml0LCBtb2RlbF9zdGVwKQoKCmBgYAoKIyMgTUNQMSBsZXZlbHMgdnMuIHZ1bG5lcmFiaWxpdHkgaW5kZXgKCkhlcmUgd2UgY2FsY3VsYXRlIHRoZSBwbGFxdWUgaW5zdGFiaWxpdHkvdnVsbmVyYWJpbGl0eSBpbmRleCBhbmQgdmlzdWFsaXplIHRoZSBNQ1AxIGxldmVscyBpbiBwbGFxdWUuCgpgYGB7ciBQbGFxdWUgVnVsbmVyYWJpbGl0eSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KIyBQbGFxdWUgdnVsbmVyYWJpbGl0eQoKdGFibGUoQUVEQi5DRUEkTWFjcm9waGFnZXMuYmluKQp0YWJsZShBRURCLkNFQSRGYXQuYmluXzEwKQp0YWJsZShBRURCLkNFQSRDb2xsYWdlbi5iaW4pCnRhYmxlKEFFREIuQ0VBJFNNQy5iaW4pCnRhYmxlKEFFREIuQ0VBJElQSC5iaW4pCgojIFNQU1MgY29kZQoKIyAKIyAqKiogc3ludGF4LSBQbGFxdWUgdnVsbmVyYWJpbGl0eSoqLgojIENPTVBVVEUgTWFjcm9faW5zdGFiID0gLTk5OS4KIyBJRiBtYWNyb3BoYWdlcy5iaW49MiBNYWNyb19pbnN0YWI9MS4KIyBJRiBtYWNyb3BoYWdlcy5iaW49MSBNYWNyb19pbnN0YWI9MC4KIyBFWEVDVVRFLgojIAojIENPTVBVVEUgRmF0MTBfaW5zdGFiID0gLTk5OS4KIyBJRiBGYXQuYmluXzEwPTIgRmF0MTBfaW5zdGFiPTEuCiMgSUYgRmF0LmJpbl8xMD0xIEZhdDEwX2luc3RhYj0wLgojIEVYRUNVVEUuCiMgCiMgQ09NUFVURSBjb2xsX2luc3RhYj0tOTk5LgojIElGIENvbGxhZ2VuLmJpbj0yIGNvbGxfaW5zdGFiPTAuCiMgSUYgQ29sbGFnZW4uYmluPTEgY29sbF9pbnN0YWI9MS4KIyBFWEVDVVRFLgojIAojIAojIENPTVBVVEUgU01DX2luc3RhYj0tOTk5LgojIElGIFNNQy5iaW49MiBTTUNfaW5zdGFiPTAuCiMgSUYgU01DLmJpbj0xIFNNQ19pbnN0YWI9MS4KIyBFWEVDVVRFLgojIAojIENPTVBVVEUgSVBIX2luc3RhYj0tOTk5LgojIElGIElQSC5iaW49MCBJUEhfaW5zdGFiPTAuCiMgSUYgSVBILmJpbj0xIElQSF9pbnN0YWI9MS4KIyBFWEVDVVRFLgojIAojIENPTVBVVEUgSW5zdGFiaWxpdHk9TWFjcm9faW5zdGFiICsgRmF0MTBfaW5zdGFiICsgIGNvbGxfaW5zdGFiICsgU01DX2luc3RhYiArIElQSF9pbnN0YWIuCiMgRVhFQ1VURS4KCiMgRml4IHBsYXF1ZXBoZW5vdHlwZXMKYXR0YWNoKEFFREIuQ0VBKQojIG1hYyBpbnN0YWJpbGl0eQpBRURCLkNFQVssIk1BQ19JbnN0YWJpbGl0eSJdIDwtIE5BCkFFREIuQ0VBJE1BQ19JbnN0YWJpbGl0eVtNYWNyb3BoYWdlcy5iaW4gPT0gLTk5OV0gPC0gTkEKQUVEQi5DRUEkTUFDX0luc3RhYmlsaXR5W01hY3JvcGhhZ2VzLmJpbiA9PSAibm8vbWlub3IiXSA8LSAwCkFFREIuQ0VBJE1BQ19JbnN0YWJpbGl0eVtNYWNyb3BoYWdlcy5iaW4gPT0gIm1vZGVyYXRlL2hlYXZ5Il0gPC0gMQoKIyBmYXQgaW5zdGFiaWxpdHkKQUVEQi5DRUFbLCJGQVQxMF9JbnN0YWJpbGl0eSJdIDwtIE5BCkFFREIuQ0VBJEZBVDEwX0luc3RhYmlsaXR5W0ZhdC5iaW5fMTAgPT0gLTk5OV0gPC0gTkEKQUVEQi5DRUEkRkFUMTBfSW5zdGFiaWxpdHlbRmF0LmJpbl8xMCA9PSAiIDwxMCUiXSA8LSAwCkFFREIuQ0VBJEZBVDEwX0luc3RhYmlsaXR5W0ZhdC5iaW5fMTAgPT0gIiA+MTAlIl0gPC0gMQoKIyBjb2wgaW5zdGFiaWxpdHkgCkFFREIuQ0VBWywiQ09MX0luc3RhYmlsaXR5Il0gPC0gTkEKQUVEQi5DRUEkQ09MX0luc3RhYmlsaXR5W0NvbGxhZ2VuLmJpbiA9PSAtOTk5XSA8LSBOQQpBRURCLkNFQSRDT0xfSW5zdGFiaWxpdHlbQ29sbGFnZW4uYmluID09ICJuby9taW5vciJdIDwtIDEKQUVEQi5DRUEkQ09MX0luc3RhYmlsaXR5W0NvbGxhZ2VuLmJpbiA9PSAibW9kZXJhdGUvaGVhdnkiXSA8LSAwCgojIHNtYyBpbnN0YWJpbGl0eQpBRURCLkNFQVssIlNNQ19JbnN0YWJpbGl0eSJdIDwtIE5BCkFFREIuQ0VBJFNNQ19JbnN0YWJpbGl0eVtTTUMuYmluID09IC05OTldIDwtIE5BCkFFREIuQ0VBJFNNQ19JbnN0YWJpbGl0eVtTTUMuYmluID09ICJuby9taW5vciJdIDwtIDEKQUVEQi5DRUEkU01DX0luc3RhYmlsaXR5W1NNQy5iaW4gPT0gIm1vZGVyYXRlL2hlYXZ5Il0gPC0gMAoKIyBpcGggaW5zdGFiaWxpdHkKQUVEQi5DRUFbLCJJUEhfSW5zdGFiaWxpdHkiXSA8LSBOQQpBRURCLkNFQSRJUEhfSW5zdGFiaWxpdHlbSVBILmJpbiA9PSAtOTk5XSA8LSBOQQpBRURCLkNFQSRJUEhfSW5zdGFiaWxpdHlbSVBILmJpbiA9PSAibm8iXSA8LSAwCkFFREIuQ0VBJElQSF9JbnN0YWJpbGl0eVtJUEguYmluID09ICJ5ZXMiXSA8LSAxCgpkZXRhY2goQUVEQi5DRUEpCgp0YWJsZShBRURCLkNFQSRNQUNfSW5zdGFiaWxpdHksIHVzZU5BID0gImlmYW55IikKdGFibGUoQUVEQi5DRUEkRkFUMTBfSW5zdGFiaWxpdHksIHVzZU5BID0gImlmYW55IikKdGFibGUoQUVEQi5DRUEkQ09MX0luc3RhYmlsaXR5LCB1c2VOQSA9ICJpZmFueSIpCnRhYmxlKEFFREIuQ0VBJFNNQ19JbnN0YWJpbGl0eSwgdXNlTkEgPSAiaWZhbnkiKQp0YWJsZShBRURCLkNFQSRJUEhfSW5zdGFiaWxpdHksIHVzZU5BID0gImlmYW55IikKCiMgY3JlYXRpbmcgdnVsbmVyYWJpbGl0eSBpbmRleApBRURCLkNFQSA8LSBBRURCLkNFQSAlPiUgbXV0YXRlKFBsYXF1ZV9WdWxuZXJhYmlsaXR5X0luZGV4ID0gZmFjdG9yKHJvd1N1bXMoLltncmVwKCJfSW5zdGFiaWxpdHkiLCBuYW1lcyguKSldLCBuYS5ybSA9IFRSVUUpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCgp0YWJsZShBRURCLkNFQSRQbGFxdWVfVnVsbmVyYWJpbGl0eV9JbmRleCwgdXNlTkEgPSAiaWZhbnkiKQoKIyBzdHIoQUVEQi5DRUEkUGxhcXVlX1Z1bG5lcmFiaWxpdHlfSW5kZXgpCgpgYGAKCkhlcmUgd2UgcGxvdCB0aGUgbGV2ZWxzIG9mIGludmVyc2UtcmFuayBub3JtYWwgdHJhbnNmb3JtZWQgYE1DUDFgIHBsYXF1ZSBsZXZlbHMgZnJvbSBleHBlcmltZW50IDEgYW5kIDIgdG8gdGhlIGBQbGFxdWUgdnVsbmVyYWJpbGl0eSBpbmRleGAuIApgYGB7ciBGaXggT1J5ZWFyR3JvdXAsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9CmxpYnJhcnkoc2psYWJlbGxlZCkKCkFFREIuQ0VBJHllYXJ0ZW1wIDwtIGFzLm51bWVyaWMoeWVhcihBRURCLkNFQSRkYXRlb2spKQoKYXR0YWNoKEFFREIuQ0VBKQoKQUVEQi5DRUFbLCJPUnllYXJHcm91cCJdIDwtIE5BCkFFREIuQ0VBJE9SeWVhckdyb3VwW3llYXJ0ZW1wIDw9IDIwMDddIDwtICI8IDIwMDciCkFFREIuQ0VBJE9SeWVhckdyb3VwW3llYXJ0ZW1wID4gMjAwN10gPC0gIj4gMjAwNyIKZGV0YWNoKEFFREIuQ0VBKQoKdGFibGUoQUVEQi5DRUEkT1J5ZWFyR3JvdXAsIEFFREIuQ0VBJE9SZGF0ZV95ZWFyKQpgYGAKCiMjIyBWaXN1YWxpc2F0aW9ucwoKYGBge3IgTUNQMSBwZXIgUGxhcXVlVnVsbmVyYWJpbGl0eUluZGV4fQojIEdsb2JhbCB0ZXN0CmNvbXBhcmVfbWVhbnMoTUNQMV9wZ19tbF8yMDE1X3JhbmsgfiBQbGFxdWVfVnVsbmVyYWJpbGl0eV9JbmRleCwgIGRhdGEgPSBBRURCLkNFQSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCnAxIDwtIGdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBLCAKICAgICAgICAgICAgICAgICAgeCA9ICJQbGFxdWVfVnVsbmVyYWJpbGl0eV9JbmRleCIsCiAgICAgICAgICAgICAgICAgIHkgPSAiTUNQMV9wZ19tbF8yMDE1X3JhbmsiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJQbGFxdWUgdnVsbmVyYWJpbGl0eSBpbmRleCIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXVxuKElOVCwgZXhwIDIpIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiUGxhcXVlX1Z1bG5lcmFiaWxpdHlfSW5kZXgiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gIm5wZyIsCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGxhYmVsID0gInAuZm9ybWF0IiwgIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3BhcihwMSwgbGVnZW5kID0gImJvdHRvbSIsIGxlZ2VuZC50aXRsZSA9ICJQbGFxdWUgdnVsbmVyYWJpbGl0eSBpbmRleCIpCmdnc2F2ZShmaWxlbmFtZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLCBUb2RheSwgIi5NQ1AxLnBsYXF1ZS5leHAyX3BnbUwuUGxhcXVlVnVsbmVyYWJpbGl0eUluZGV4LnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNV9yYW5rIH4gUGxhcXVlX1Z1bG5lcmFiaWxpdHlfSW5kZXgsIGdyb3VwLmJ5ID0gIkdlbmRlciIsIGRhdGEgPSBBRURCLkNFQSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCnAyIDwtIGdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBLCAKICAgICAgICAgICAgICAgICAgeCA9ICJQbGFxdWVfVnVsbmVyYWJpbGl0eV9JbmRleCIsCiAgICAgICAgICAgICAgICAgIHkgPSAiTUNQMV9wZ19tbF8yMDE1X3JhbmsiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJQbGFxdWUgdnVsbmVyYWJpbGl0eSBpbmRleCBieSBnZW5kZXIiLAogICAgICAgICAgICAgICAgICB5bGFiID0gIk1DUDEgcGxhcXVlIFtwZy9tTF1cbihJTlQsIGV4cCAyKSIsCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIkdlbmRlciIsCiAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSBjKCIjRDUyNjdCIiwgIiMxMjkwRDkiKSwKICAgICAgICAgICAgICAgICAgYWRkID0gImppdHRlciIpICsKICBzdGF0X2NvbXBhcmVfbWVhbnMoYWVzKGdyb3VwID0gR2VuZGVyKSwgbGFiZWwgPSAicC5mb3JtYXQiLCAgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncGFyKHAyLCBsZWdlbmQgPSAiYm90dG9tIiwgbGVnZW5kLnRpdGxlID0gIlBsYXF1ZSB2dWxuZXJhYmlsaXR5IGluZGV4IikKZ2dzYXZlKGZpbGVuYW1lID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsIFRvZGF5LCAiLk1DUDEucGxhcXVlLmV4cDJfcGdtTC5QbGFxdWVWdWxuZXJhYmlsaXR5SW5kZXguYnlHZW5kZXIucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKCgpjb21wYXJlX21lYW5zKE1DUDFfcmFuayB+IFBsYXF1ZV9WdWxuZXJhYmlsaXR5X0luZGV4LCAgZGF0YSA9IEFFREIuQ0VBLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKcDMgPC0gZ2dwdWJyOjpnZ2JveHBsb3QoQUVEQi5DRUEsIAogICAgICAgICAgICAgICAgICB4ID0gIlBsYXF1ZV9WdWxuZXJhYmlsaXR5X0luZGV4IiwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3JhbmsiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJQbGFxdWUgdnVsbmVyYWJpbGl0eSBpbmRleCIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXVxuKElOVCwgZXhwIDEpIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiUGxhcXVlX1Z1bG5lcmFiaWxpdHlfSW5kZXgiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gIm5wZyIsCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGxhYmVsID0gInAuZm9ybWF0IiwgIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3BhcihwMywgbGVnZW5kID0gImJvdHRvbSIsIGxlZ2VuZC50aXRsZSA9ICJQbGFxdWUgdnVsbmVyYWJpbGl0eSBpbmRleCIpCmdnc2F2ZShmaWxlbmFtZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLCBUb2RheSwgIi5NQ1AxLnBsYXF1ZS5leHAxX3BnbUwuUGxhcXVlVnVsbmVyYWJpbGl0eUluZGV4LnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpjb21wYXJlX21lYW5zKE1DUDFfcmFuayB+IFBsYXF1ZV9WdWxuZXJhYmlsaXR5X0luZGV4LCBncm91cC5ieSA9ICJHZW5kZXIiLCBkYXRhID0gQUVEQi5DRUEsIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpwNCA8LSBnZ3B1YnI6OmdnYm94cGxvdChBRURCLkNFQSwgCiAgICAgICAgICAgICAgICAgIHggPSAiUGxhcXVlX1Z1bG5lcmFiaWxpdHlfSW5kZXgiLAogICAgICAgICAgICAgICAgICB5ID0gIk1DUDFfcmFuayIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIlBsYXF1ZSB2dWxuZXJhYmlsaXR5IGluZGV4IiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdXG4oSU5ULCBleHAgMSkiLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJHZW5kZXIiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gYygiI0Q1MjY3QiIsICIjMTI5MEQ5IiksCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGFlcyhncm91cCA9IEdlbmRlciksIGxhYmVsID0gInAuZm9ybWF0IiwgIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3BhcihwNCwgbGVnZW5kID0gImJvdHRvbSIsIGxlZ2VuZC50aXRsZSA9ICJQbGFxdWUgdnVsbmVyYWJpbGl0eSBpbmRleCIpCmdnc2F2ZShmaWxlbmFtZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLCBUb2RheSwgIi5NQ1AxLnBsYXF1ZS5leHAxX3BnbUwuUGxhcXVlVnVsbmVyYWJpbGl0eUluZGV4LmJ5R2VuZGVyLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNV9yYW5rIH4gUGxhcXVlX1Z1bG5lcmFiaWxpdHlfSW5kZXgsIGRhdGEgPSBBRURCLkNFQSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCnA1IDwtIGdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBLCAKICAgICAgICAgICAgICAgICAgeCA9ICJQbGFxdWVfVnVsbmVyYWJpbGl0eV9JbmRleCIsCiAgICAgICAgICAgICAgICAgIHkgPSAiTUNQMV9wZ19tbF8yMDE1X3JhbmsiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJQbGFxdWUgdnVsbmVyYWJpbGl0eSBpbmRleCIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXVxuKElOVCwgZXhwIDIpIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiUGxhcXVlX1Z1bG5lcmFiaWxpdHlfSW5kZXgiLAogICAgICAgICAgICAgICAgICBwYWxldHRlID0gIm5wZyIsCiAgICAgICAgICAgICAgICAgIGZhY2V0LmJ5ID0gIk9SeWVhckdyb3VwIiwKICAgICAgICAgICAgICAgICAgYWRkID0gImppdHRlciIpICsKICBzdGF0X2NvbXBhcmVfbWVhbnMobGFiZWwgPSAicC5mb3JtYXQiLCAgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCmdncGFyKHA1LCBsZWdlbmQgPSAiYm90dG9tIiwgbGVnZW5kLnRpdGxlID0gIlBsYXF1ZSB2dWxuZXJhYmlsaXR5IGluZGV4IikKZ2dzYXZlKGZpbGVuYW1lID0gcGFzdGUwKFBMT1RfbG9jLCAiLyIsIFRvZGF5LCAiLk1DUDEucGxhcXVlLmV4cDJfcGdtTC5QbGFxdWVWdWxuZXJhYmlsaXR5SW5kZXhfRmFjZXRfYnlZZWFyLnBkZiIpLCBwbG90ID0gbGFzdF9wbG90KCkpCgpjb21wYXJlX21lYW5zKE1DUDFfcGdfbWxfMjAxNV9yYW5rIH4gUGxhcXVlX1Z1bG5lcmFiaWxpdHlfSW5kZXgsIGdyb3VwLmJ5ID0gIkdlbmRlciIsIGRhdGEgPSBBRURCLkNFQSwgbWV0aG9kID0gImtydXNrYWwudGVzdCIpCnA2IDwtIGdncHVicjo6Z2dib3hwbG90KEFFREIuQ0VBLCAKICAgICAgICAgICAgICAgICAgeCA9ICJQbGFxdWVfVnVsbmVyYWJpbGl0eV9JbmRleCIsCiAgICAgICAgICAgICAgICAgIHkgPSAiTUNQMV9wZ19tbF8yMDE1X3JhbmsiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJQbGFxdWUgdnVsbmVyYWJpbGl0eSBpbmRleCIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXVxuKElOVCwgZXhwIDIpIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiR2VuZGVyIiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9IGMoIiNENTI2N0IiLCAiIzEyOTBEOSIpLAogICAgICAgICAgICAgICAgICBmYWNldC5ieSA9ICJPUnllYXJHcm91cCIsCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGFlcyhncm91cCA9IEdlbmRlciksIGxhYmVsID0gInAuZm9ybWF0IiwgIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3BhcihwNiwgbGVnZW5kID0gImJvdHRvbSIsIGxlZ2VuZC50aXRsZSA9ICJQbGFxdWUgdnVsbmVyYWJpbGl0eSBpbmRleCIpCmdnc2F2ZShmaWxlbmFtZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLCBUb2RheSwgIi5NQ1AxLnBsYXF1ZS5leHAyX3BnbUwuUGxhcXVlVnVsbmVyYWJpbGl0eUluZGV4X0ZhY2V0X2J5WWVhci5ieUdlbmRlci5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKCmNvbXBhcmVfbWVhbnMoTUNQMV9yYW5rIH4gUGxhcXVlX1Z1bG5lcmFiaWxpdHlfSW5kZXgsICBkYXRhID0gQUVEQi5DRUEsIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpwNyA8LSBnZ3B1YnI6OmdnYm94cGxvdChBRURCLkNFQSwgCiAgICAgICAgICAgICAgICAgIHggPSAiUGxhcXVlX1Z1bG5lcmFiaWxpdHlfSW5kZXgiLAogICAgICAgICAgICAgICAgICB5ID0gIk1DUDFfcmFuayIsIAogICAgICAgICAgICAgICAgICB4bGFiID0gIlBsYXF1ZSB2dWxuZXJhYmlsaXR5IGluZGV4IiwKICAgICAgICAgICAgICAgICAgeWxhYiA9ICJNQ1AxIHBsYXF1ZSBbcGcvbUxdXG4oSU5ULCBleHAgMSkiLAogICAgICAgICAgICAgICAgICBjb2xvciA9ICJQbGFxdWVfVnVsbmVyYWJpbGl0eV9JbmRleCIsCiAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSAibnBnIiwKICAgICAgICAgICAgICAgICAgZmFjZXQuYnkgPSAiT1J5ZWFyR3JvdXAiLAogICAgICAgICAgICAgICAgICBhZGQgPSAiaml0dGVyIikgKwogIHN0YXRfY29tcGFyZV9tZWFucyhsYWJlbCA9ICJwLmZvcm1hdCIsICBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKZ2dwYXIocDcsIGxlZ2VuZCA9ICJib3R0b20iLCBsZWdlbmQudGl0bGUgPSAiUGxhcXVlIHZ1bG5lcmFiaWxpdHkgaW5kZXgiKQpnZ3NhdmUoZmlsZW5hbWUgPSBwYXN0ZTAoUExPVF9sb2MsICIvIiwgVG9kYXksICIuTUNQMS5wbGFxdWUuZXhwMV9wZ21MLlBsYXF1ZVZ1bG5lcmFiaWxpdHlJbmRleF9GYWNldF9ieVllYXIucGRmIiksIHBsb3QgPSBsYXN0X3Bsb3QoKSkKCmNvbXBhcmVfbWVhbnMoTUNQMV9yYW5rIH4gUGxhcXVlX1Z1bG5lcmFiaWxpdHlfSW5kZXgsIGdyb3VwLmJ5ID0gIkdlbmRlciIsICAgZGF0YSA9IEFFREIuQ0VBLCBtZXRob2QgPSAia3J1c2thbC50ZXN0IikKcDggPC0gZ2dwdWJyOjpnZ2JveHBsb3QoQUVEQi5DRUEsIAogICAgICAgICAgICAgICAgICB4ID0gIlBsYXF1ZV9WdWxuZXJhYmlsaXR5X0luZGV4IiwKICAgICAgICAgICAgICAgICAgeSA9ICJNQ1AxX3JhbmsiLCAKICAgICAgICAgICAgICAgICAgeGxhYiA9ICJQbGFxdWUgdnVsbmVyYWJpbGl0eSBpbmRleCIsCiAgICAgICAgICAgICAgICAgIHlsYWIgPSAiTUNQMSBwbGFxdWUgW3BnL21MXVxuKElOVCwgZXhwIDEpIiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSAiR2VuZGVyIiwKICAgICAgICAgICAgICAgICAgcGFsZXR0ZSA9ICJucGciLAogICAgICAgICAgICAgICAgICBmYWNldC5ieSA9ICJPUnllYXJHcm91cCIsCiAgICAgICAgICAgICAgICAgIGFkZCA9ICJqaXR0ZXIiKSArCiAgc3RhdF9jb21wYXJlX21lYW5zKGFlcyhncm91cCA9IEdlbmRlciksIGxhYmVsID0gInAuZm9ybWF0IiwgIG1ldGhvZCA9ICJrcnVza2FsLnRlc3QiKQpnZ3BhcihwOCwgbGVnZW5kID0gImJvdHRvbSIsIGxlZ2VuZC50aXRsZSA9ICJQbGFxdWUgdnVsbmVyYWJpbGl0eSBpbmRleCIpCmdnc2F2ZShmaWxlbmFtZSA9IHBhc3RlMChQTE9UX2xvYywgIi8iLCBUb2RheSwgIi5NQ1AxLnBsYXF1ZS5leHAxX3BnbUwuUGxhcXVlVnVsbmVyYWJpbGl0eUluZGV4X0ZhY2V0X2J5WWVhci5wZGYiKSwgcGxvdCA9IGxhc3RfcGxvdCgpKQoKYGBgCgoKCiMjIyBNb2RlbCAxCgpJbiB0aGlzIG1vZGVsIHdlIGNvcnJlY3QgZm9yIF9BZ2VfLCBfR2VuZGVyXywgYW5kIF95ZWFyIG9mIHN1cmdlcnlfLgoKSGVyZSB3ZSB1c2UgdGhlIGludmVyc2UtcmFuayBub3JtYWxpemVkIGRhdGEgLSB2aXN1YWxseSB0aGlzIGlzIG1vcmUgbm9ybWFsbHkgZGlzdHJpYnV0ZWQuCgpBbmFseXNpcyBvZiB0aGUgcGxhcXVlIHZ1bG5lcmFiaWxpdHkgaW5kZXogYXMgYSBmdW5jdGlvbiBvZiBwbGFxdWUgTUNQMSBsZXZlbHMuCmBgYHtyIENyb3NzU2VjOiBQbGFxdWVfVnVsbmVyYWJpbGl0eV9JbmRleCAtIG9yZGluYWwgcmVncmVzc2lvbiBNT0RFTDEgUkFOSywgcGFnZWQucHJpbnQ9VFJVRX0KVFJBSVRTLlBST1RFSU4uUkFOSy5leHRyYSA9IGMoIk1DUDFfcGdfbWxfMjAxNV9yYW5rIiwgICJNQ1AxX3JhbmsiKQoKR0xNLnJlc3VsdHMgPC0gZGF0YS5mcmFtZShtYXRyaXgoTkEsIG5jb2wgPSAxNiwgbnJvdyA9IDApKQpmb3IgKHByb3RlaW4gaW4gMTpsZW5ndGgoVFJBSVRTLlBST1RFSU4uUkFOSy5leHRyYSkpIHsKICBQUk9URUlOID0gVFJBSVRTLlBST1RFSU4uUkFOSy5leHRyYVtwcm90ZWluXQogIGNhdChwYXN0ZTAoIlxuQW5hbHlzaXMgb2YgIixQUk9URUlOLCIuXG4iKSkKICBUUkFJVCA9ICJQbGFxdWVfVnVsbmVyYWJpbGl0eV9JbmRleCIKICAgIGNhdChwYXN0ZTAoIlxuLSBwcm9jZXNzaW5nICIsVFJBSVQsIlxuXG4iKSkKICAgIGN1cnJlbnRERiA8LSBhcy5kYXRhLmZyYW1lKEFFREIuQ0VBICU+JQogICAgICBkcGx5cjo6c2VsZWN0KC4sIFBST1RFSU4sIFRSQUlULCBDT1ZBUklBVEVTX00xLCBPUmRhdGVfZXBvY2gpICU+JQogICAgICBmaWx0ZXIoY29tcGxldGUuY2FzZXMoLikpKSAlPiUKICAgICAgZmlsdGVyX2lmKH5pcy5udW1lcmljKC4pLCBhbGxfdmFycyghaXMuaW5maW5pdGUoLikpKSAlPiUKICAgICAgZHJvcGxldmVscyguKQogICAgCiAgICAjIGZpeCBudW1lcmljIE9SIHllYXIKICAgIGN1cnJlbnRERiRPUmRhdGVfeWVhciA8LSBhcy5udW1lcmljKGN1cnJlbnRERiRPUmRhdGVfeWVhcikKICAgIAogICAgIyBmb3IgZGVidWcKICAgICMgcHJpbnQoRFQ6OmRhdGF0YWJsZShjdXJyZW50REYpKQogICAgIyBwcmludChucm93KGN1cnJlbnRERikpCiAgICAjIHByaW50KHN0cihjdXJyZW50REYpKQogICAgIyBwcmludChjbGFzcyhjdXJyZW50REZbLFRSQUlUXSkpCiAgICAjIHRhYmxlKGN1cnJlbnRERiRPUmRhdGVfeWVhcikKICAgICMjIyB1bml2YXJpYXRlCiAgICAgIyArIEh5cGVydGVuc2lvbi5jb21wb3NpdGUgKyBEaWFiZXRlc1N0YXR1cyArIFNtb2tlckN1cnJlbnQgKyAKICAgICAjICAgICAgICAgICAgTWVkLlN0YXRpbi5MTEQgKyBNZWQuYWxsLmFudGlwbGF0ZWxldCArIEdGUl9NRFJEICsgQk1JICsgCiAgICAgIyAgICAgICAgICAgIENBRF9oaXN0b3J5ICsgU3Ryb2tlX2hpc3RvcnkgKyBQZXJpcGhlcmFsLmludGVydiArIHN0ZW5vc2UKICAgIGZpdCA8LSBwb2xyKGN1cnJlbnRERlssVFJBSVRdIH4gY3VycmVudERGWyxQUk9URUlOXSArIEFnZSArIEdlbmRlciArIE9SZGF0ZV95ZWFyLCAKICAgICAgICAgICAgICBkYXRhICA9ICBjdXJyZW50REYsIAogICAgICAgICAgICAgIEhlc3MgPSBUUlVFKQogICAgcHJpbnQoc3VtbWFyeShmaXQpKQogICAgCiAgICAjIyBzdG9yZSB0YWJsZQogICAgKGN0YWJsZSA8LSBjb2VmKHN1bW1hcnkoZml0KSkpCgogICAgIyMgY2FsY3VsYXRlIGFuZCBzdG9yZSBwIHZhbHVlcwogICAgcCA8LSBwbm9ybShhYnMoY3RhYmxlWywgInQgdmFsdWUiXSksIGxvd2VyLnRhaWwgPSBGQUxTRSkgKiAyCiAgICAKICAgICMjIGNvbWJpbmVkIHRhYmxlCiAgICBwcmludCgoY3RhYmxlIDwtIGNiaW5kKGN0YWJsZSwgInAgdmFsdWUiID0gcCkpKQogIH0KCgpgYGAKCiMjIyBNb2RlbCAyCgpJbiB0aGlzIG1vZGVsIHdlIGNvcnJlY3QgZm9yIF9BZ2VfLCBfR2VuZGVyXywgX0h5cGVydGVuc2lvbiBzdGF0dXNfLCBfRGlhYmV0ZXMgc3RhdHVzXywgX2N1cnJlbnQgc21va2VyIHN0YXR1c18sIF9saXBpZC1sb3dlcmluZyBkcnVncyAoTExEcylfLCBfYW50aXBsYXRlbGV0IG1lZGljYXRpb25fLCBfZUdGUiAoTURSRClfLCBfQk1JXywgX01lZEh4X0NWRF8gKGNvbWJpbmF0aW9uIG9mIF9DQUQgaGlzdG9yeV8sIF9zdHJva2UgaGlzdG9yeV8sIGFuZCBfcGVyaXBoZXJhbCBpbnRlcnZlbnRpb25zXyksIGFuZCBfc3Rlbm9zaXMuXy4KCgpgYGB7ciBDcm9zc1NlYzogUGxhcXVlX1Z1bG5lcmFiaWxpdHlfSW5kZXggLSBvcmRpbmFsIHJlZ3Jlc3Npb24gTU9ERUwyIFJBTkssIHBhZ2VkLnByaW50PVRSVUV9Cgpmb3IgKHByb3RlaW4gaW4gMTpsZW5ndGgoVFJBSVRTLlBST1RFSU4uUkFOSy5leHRyYSkpIHsKICBQUk9URUlOID0gVFJBSVRTLlBST1RFSU4uUkFOSy5leHRyYVtwcm90ZWluXQogIGNhdChwYXN0ZTAoIlxuQW5hbHlzaXMgb2YgIixQUk9URUlOLCIuXG4iKSkKICBUUkFJVCA9ICJQbGFxdWVfVnVsbmVyYWJpbGl0eV9JbmRleCIKICAgIGNhdChwYXN0ZTAoIlxuLSBwcm9jZXNzaW5nICIsVFJBSVQsIlxuXG4iKSkKICAgIGN1cnJlbnRERiA8LSBhcy5kYXRhLmZyYW1lKEFFREIuQ0VBICU+JQogICAgICBkcGx5cjo6c2VsZWN0KC4sIFBST1RFSU4sIFRSQUlULCBDT1ZBUklBVEVTX00yKSAlPiUKICAgICAgZmlsdGVyKGNvbXBsZXRlLmNhc2VzKC4pKSkgJT4lCiAgICAgIGZpbHRlcl9pZih+aXMubnVtZXJpYyguKSwgYWxsX3ZhcnMoIWlzLmluZmluaXRlKC4pKSkgJT4lCiAgICAgIGRyb3BsZXZlbHMoLikKICAgIAogICAgIyBmaXggbnVtZXJpYyBPUiB5ZWFyCiAgICBjdXJyZW50REYkT1JkYXRlX3llYXIgPC0gYXMubnVtZXJpYyhjdXJyZW50REYkT1JkYXRlX3llYXIpCiAgICAKICAgICMgZm9yIGRlYnVnCiAgICAjIHByaW50KERUOjpkYXRhdGFibGUoY3VycmVudERGKSkKICAgICMgcHJpbnQobnJvdyhjdXJyZW50REYpKQogICAgIyBwcmludChzdHIoY3VycmVudERGKSkKICAgICMgcHJpbnQoY2xhc3MoY3VycmVudERGWyxUUkFJVF0pKQogICAgIyMjIHVuaXZhcmlhdGUKCiAgICBmaXQgPC0gcG9scihhcy5mYWN0b3IoY3VycmVudERGWyxUUkFJVF0pIH4gY3VycmVudERGWyxQUk9URUlOXSArIEFnZSArIEdlbmRlciArIE9SZGF0ZV95ZWFyICsgSHlwZXJ0ZW5zaW9uLmNvbXBvc2l0ZSArIERpYWJldGVzU3RhdHVzICsgU21va2VyU3RhdHVzICsgTWVkLlN0YXRpbi5MTEQgKyBNZWQuYWxsLmFudGlwbGF0ZWxldCArIEdGUl9NRFJEICsgQk1JICsgTWVkSHhfQ1ZEICsgc3Rlbm9zZSwKICAgICAgICAgICAgICBkYXRhICA9ICBjdXJyZW50REYsCiAgICAgICAgICAgICAgSGVzcyA9IFRSVUUpCiAgICAKICAgIHByaW50KHN1bW1hcnkoZml0KSkKICAgIAogICAgIyMgc3RvcmUgdGFibGUKICAgIChjdGFibGUgPC0gY29lZihzdW1tYXJ5KGZpdCkpKQoKICAgICMjIGNhbGN1bGF0ZSBhbmQgc3RvcmUgcCB2YWx1ZXMKICAgIHAgPC0gcG5vcm0oYWJzKGN0YWJsZVssICJ0IHZhbHVlIl0pLCBsb3dlci50YWlsID0gRkFMU0UpICogMgogICAgCiAgICAjIyBjb21iaW5lZCB0YWJsZQogICAgcHJpbnQoKGN0YWJsZSA8LSBjYmluZChjdGFibGUsICJwIHZhbHVlIiA9IHApKSkKICB9CgpgYGAKCgojIFNlc3Npb24gaW5mb3JtYXRpb24KCi0tLS0tLQoKICAgIFZlcnNpb246ICAgICAgdjEuMC4wCiAgICBMYXN0IHVwZGF0ZTogIDIwMjEtMDItMTEKICAgIFdyaXR0ZW4gYnk6ICAgU2FuZGVyIFcuIHZhbiBkZXIgTGFhbiAocy53LnZhbmRlcmxhYW4tMlthdF11bWN1dHJlY2h0Lm5sKS4KICAgIERlc2NyaXB0aW9uOiAgU2NyaXB0IHRvIGFuYWx5c2UgTUNQMSBmcm9tIHRoZSBBdGhlci1FeHByZXNzIEJpb2JhbmsgU3R1ZHkuCiAgICBNaW5pbXVtIHJlcXVpcmVtZW50czogUiB2ZXJzaW9uIDMuNS4yICgyMDE4LTEyLTIwKSAtLSAnRWdnc2hlbGwgSWdsb28nLCBtYWNPUyBNb2phdmUgKDEwLjE0LjIpLgogICAgCiAgICAqKk1vU0NvVyBUby1EbyBMaXN0KioKICAgIFRoZSB0aGluZ3Mgd2UgTXVzdCwgU2hvdWxkLCBDb3VsZCwgYW5kIFdvdWxkIGhhdmUgZ2l2ZW4gdGhlIHRpbWUgd2UgaGF2ZS4KICAgIF9NXwoKICAgIF9TXwogICAgCiAgICBfQ18KICAgIAogICAgCiAgICBfV18KICAgIAogICAgCiAgICAqKkNoYW5nZXMgbG9nKioKICAgICogdjEuMC4wIEluaXRhbCB2ZXJzaW9uLgogICAgCgotLS0tLS0KCmBgYHtyIGV2YWwgPSBUUlVFfQpzZXNzaW9uSW5mbygpCmBgYAoKIyBTYXZpbmcgZW52aXJvbm1lbnQKYGBge3IgU2F2aW5nfQpzYXZlLmltYWdlKHBhc3RlMChQUk9KRUNUX2xvYywgIi8iLFRvZGF5LCIuIixQUk9KRUNUTkFNRSwiLmFkZGl0aW9uYWxfZmlndXJlcy5SRGF0YSIpKQpgYGAKCi0tLS0tLQo8c3VwPiZjb3B5OyAxOTc5LTIwMjEgU2FuZGVyIFcuIHZhbiBkZXIgTGFhbiB8IHMudy52YW5kZXJsYWFuLTJbYXRdZ21haWwuY29tIHwgW3N3dmFuZGVybGFhbi5naXRodWIuaW9dKGh0dHBzOi8vc3d2YW5kZXJsYWFuLmdpdGh1Yi5pbykuPC9zdXA+Ci0tLS0tLQo=